Pyddm

Latest version: v0.8.1

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

Scan your dependencies

Page 1 of 2

0.8.1

Released June 22, 2024

Bug fixes

- Full support for numpy 2.0

0.8.0

Released May 19, 2024

New features

- New interface (the "gddm" function) for easier model specification

PyDDM has a new recommended and default way of constructing models.
Previously PyDDM used an object-oriented interface. While this was flexible,
in practice, it required a lot of code to make even very simple models. Now,
nearly all models can be specified very simply using the "gddm" function. See
documentation for more information. (The object-oriented interface will
always be a part of PyDDM, so backward compatibility is maintained.)

- Additional views for the model GUI

Previously, the model GUI showed the probability densities for the response
time. Now it also can show the psychometric function, chronometric function,
and the shape of the bound.

- Complete documentation rewrite

All of the documentation has been rewritten to use the gddm() function. It
has also been modified to make it more accessible and easier to follow.

- Clearer interface for fitting models

Supports scikit-learn--style "fit" interface for models is now included and
recommended by default.

- Analytical solutions with variable starting position

Models with variable starting positions will now be automatically solved
analytically instead of numerically.


Other

- Increased compatility for building C extensions on different compilers
- The `minval`/`maxval` arguments of Fittable objects are now the default first and
second argument in the object-oriented interface
- Better compatibility of `model_gui_jupyter` in new environments
- The "Solution.resample" function is now known as "Solution.sample".

Bug fixes

- The function plot_model_pdf was fixed (thanks Baptiste!)

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

Page 1 of 2

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.