klabhub / neurostim

Design and run visual neuroscience experiments using Matlab and the Psychophysics Toolbox.
MIT License
5 stars 3 forks source link

Inactivated prm validation #154

Closed adammorrissirrommada closed 3 years ago

adammorrissirrommada commented 3 years ago

Hi @bartkrekelberg.

Happy new year!

Parameters were being validated but no action taken on fail. Commented out for now. Fixing is easy enough but could cause lots of failures in existing paradigms (that have been silently failing). What do you think is the best way forward?

If we activate the validation, there is another problem: you can't currently set c.iti = plugins.jitter(...). Validation of iti param fails because isnan() doesn't accept jitter objects. isnumeric() is also part of that validation anon function and works but returns false (so an example of a silent fail).

adammorrissirrommada commented 3 years ago

Would probably need to overload isnumeric(), isnan() etc. in adaptive class so that it calls getValue() internally and then applies Matlab's native isnumeric()/isnan() on the jittered value.

bartkrekelberg commented 3 years ago

Yes, overloading isnumeric and isnan in the adaptive clas would be necessary (and easy to add).

But the more fundamental question is whether this overhead is really worth it.

Maybe we could put it behind a constant (if cic.VALIDATE , similar to PROFILE) to allow the JIT compiler to get rid of the validation code and also to allow current paradigms to keep running?