dfm / george

Fast and flexible Gaussian Process regression in Python
http://george.readthedocs.io
MIT License
451 stars 128 forks source link

Issue with adding new kernel and parsing #100

Open schen70 opened 6 years ago

schen70 commented 6 years ago

Hi,

When I try adding a new kernel, or even removing kernels from the kernels folder, and then compile, it seems that george is not updating the kernel types correctly.

For example, if I remove every kernel except "EmptyKernel" and "ExpSine2Kernel", the resulting build will print errors if I try to test. But if I switch the "kernel_type" of those kernels in "kernels.py" from 1 and 0 to 0 and 1, the tests will exit successfully.

Similarly, if I add a custom kernel, none of the original kernels that appear in "kernels.py" below the new kernel will work, unless I shift their "kernel_type" up by one. The new kernel then apparently is not assigned a kernel type, and cannot be tested.

The parser.h file that's compiled has the correct kernel type assignments, but it does not seem to be used. Even if I delete the file from the build, the code still runs the same.

dfm commented 6 years ago

The files kernel.py, kernel.h, parser.h are all automatically generated and the IDs will be consistent. A good place to start would be:

rm -rf build george/kernels.py george/include/george/parser.h george/include/george/kernels.h
python setup.py install