Pyddm

Latest version: v0.7.0

Safety actively analyzes 621706 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.7.0

Released July 2, 2023

New features

- Stimulus coding, accuracy coding, or "anything else" coding

Previously, the top boundary in PyDDM always represented correct responses,
and the bottom represented error responses. Now, either boundary can
represent anything. This is given during model creation by specifying the
names of the boundaries, e.g., Model(..., choice_names=("left", "right"))

- Speedup for the analytical solver

The analytical solver now runs about 50% faster. This is due to increased
caching and a change to the structure of Solution objects.

Other

- Fixes to resizing the axes when plotting the model
- Compatibility with Python 3.11
- solve_all_conditions can now accept condition combinations (thanks Cove!)
- Added ICPointRatio, a relative biased starting position

Bug fixes

- Samples of different lengths can now be compared
- Fixed Boundary condition in the core simulation code, slightly improving
accuracy for a given dx and dt
- Fixed Google Colab online demo

Breaking changes

- Loops which depended on the copy of the model in the Solution object may have
to be changed. (This is unlikely to impact most users.)

0.6.1

Released July 10, 2022

Minor changes

- The new C solver is now automatically selected under a wider range of
invocation methods
- Solution objects allow evaluating the pdf at a single RT without creating a
Sample.

Bug fixes

- The new C solver produced lower-accuracy results for leaky and unstable
integration

0.6.0

Released July 3, 2022

New features

- Performance improvement (~10x faster)

The backward Euler method has been rewritten in C. This gives a substantial
(~10x) performance increase compared to the numpy-based implementation. The
analytical solver has also been rewritten in C, resulting in a more modest
(~2x) performance improvement. PyDDM will fall back to the numpy method if
the C module is not availabe.

- Easily create new non-decision time overlays

It is now possible to inherit from the OverlayNonDecision class - in
practice, this makes it easier to define non-decision times which depend on
a task condition and/or parameters.

- Better logging (thanks Cove!)

PyDDM now uses the logging module, making it easier to disable warnings
based on their urgency level.


Other

- The hill-climbing optimizer now accepts seeded values (thanks Daniel!)
- Error handling now operates slightly differently, which should reduce the
number of errors and warnings seen by users
- Model parameters can now be easily accessed using the Model.parameters()
method

Bug fixes

- The seed in Solution.resample() was ignored
- When conditions were specified as a list, solve_partial_conditions would
generate an invalid Solution object

Breaking changes

- PyDDM should now be imported using "import pyddm" instead of "import ddm".
This is to bring it into compliance with standard Python naming conventions,
and fix bugs with namespace conflicts on some computers.

0.5.2

Released October 10, 2021

Major changes

- Allow strings and tuples as conditions

Previously, task conditions could only be specified by a single number.
Now, they can be specified by either a string or a tuple. Strings make
"flags" more readable. Tuples make it easier to work with long and/or
variable-length task conditions, e.g., for stimuli which change over time in
a different way on each trial.

Bug fixes

- Fixed the gamma distribution non-decision time

Other

- Improved documentation and error messages
- Switched continuous integration platforms from Travis to Github Actions

0.5.1

Released December 4, 2020

Minor changes

- Option to suppress output in differential evolution
- Option to drop undecided trials when converting a sample to a pandas dataframe

Bug fixes

- Fixes a bug in which Solution.resample can sometimes give negative RTs under
certain conditions
- Fixes a bug in likelihood-based fitting methods which produced incorrect
results when fitting with undecided trials
- Fixes a bug in condition_combinations which made fitting very slow for Samples
with many conditions

0.5.0

Released: September 15, 2020

New features

- Jupyter notebook compatibility

In addition to the classic model GUI, it is now possible to
explore models interactively in Jupyter notebooks using the
"ddm.plot.model_gui_jupyter" function. With this change, PyDDM
also now offers online interactive examples.

- Analytical solutions for arbitrary point source initial conditions (thanks Nathan!)

Analytical solutions are now implemented for point source initial
conditions at points other than x=0. The analytical solver will
automatically detect if you have specified a compatible model, and
if so, it will solve it analytically instead of numerically. This
leads to speed boosts of several orders of magnitude for these
models.

- Prescriptive warning messages

When possible, warnings now give details of how to correct the
model, for example, by decreasing dx or dt.

Bug fixes

- Fix broken robust loss functions
- Example code no longer gives warning messages
- Fixed integer overflows on Windows
- Fixed underflow warning messages on model simulation for specific
models (thanks Nathan!)

Breaking changes

- The "get_model_parameters" function now does not return repeated
parameters. So, if two parameters in your model share the same
Fittable object, meaning they are fit together, only one copy of
this will be listed in calls to "get_model_parameters".
Corresponding changes were made to "set_model_parameters".

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.