Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor/transferfunction/scale_and_offset #3184

Merged
merged 40 commits into from
Feb 1, 2025

Conversation

jdcpni
Copy link
Collaborator

@jdcpni jdcpni commented Feb 1, 2025

• transferfunctions.py:

  • rename bounds -> range
  • add DeterministicTransferFunction subclass of TransferFunction:
    • scale and offset Parameters used by all subclasses
    • add _range_setter() that adjusts range based on scale and/or offset

jdcpni and others added 30 commits October 31, 2024 08:38
• transferfunctions.py:
  * Add bounds to Linear (docs are wrong and code doesn't implement them)
  * Refactor bounds to use getter, and to list dependencies on scale and offset, and to use "natural bounds" or the like
  * Restructure classes for TansferFunction into deterministic and probabilistic subclasses
• transferfunctions.py:
  * Add bounds to Linear (docs are wrong and code doesn't implement them)
  * Refactor bounds to use getter, and to list dependencies on scale and offset, and to use "natural bounds" or the like
  * Restructure classes for TansferFunction into deterministic and probabilistic subclasses
• transferfunctions.py:
  * Add bounds to Linear (docs are wrong and code doesn't implement them)
  * Refactor bounds to use getter, and to list dependencies on scale and offset, and to use "natural bounds" or the like
  * Restructure classes for TansferFunction into deterministic and probabilistic subclasses
  - rename bounds -> range
  - add DeterministicTransferFunction subclass of TransferFunction:
    - scale and offset Parameters used by all subclasses
    - add _range_setter() that adjusts range based on scale and/or offset
Copy link

github-actions bot commented Feb 1, 2025

This PR causes the following changes to the html docs (ubuntu-latest-3.11):

diff -r docs-base/Function.html docs-head/Function.html
463c463
< <dd><p>Implement abstract class for Function category of Component class</p>
---
> <dd><p>Abstract base class for Function category of Component class</p>
diff -r docs-base/Functions.html docs-head/Functions.html
461c461
< <dd><p>Implement abstract class for Function category of Component class</p>
---
> <dd><p>Abstract base class for Function category of Component class</p>
diff -r docs-base/Mechanism.html docs-head/Mechanism.html
1013c1013
< <dd><p>Base class for Mechanism.</p>
---
> <dd><p>Abstract base class for Mechanism.</p>
diff -r docs-base/Projection.html docs-head/Projection.html
567c567
< <dd><p>Base class for all Projections.</p>
---
> <dd><p>Abstract base class for all Projections.</p>
diff -r docs-base/SelectionFunctions.html docs-head/SelectionFunctions.html
343d342
< <li><p><strong>bounds</strong> (<em>None</em>) – </p></li>
diff -r docs-base/TimerFunctions.html docs-head/TimerFunctions.html
991c991
< <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.nonstateful.timerfunctions.</span></span><span class="sig-name descname"><span class="pre">TimerFunction</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.timerfunctions.TimerFunction" title="Permalink to this definition">¶</a></dt>
---
> <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.nonstateful.timerfunctions.</span></span><span class="sig-name descname"><span class="pre">TimerFunction</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default_variable</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">owner</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.timerfunctions.TimerFunction" title="Permalink to this definition">¶</a></dt>
diff -r docs-base/TransferFunctions.html docs-head/TransferFunctions.html
211a212
> <li><p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Gaussian" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Gaussian"><code class="xref any py py-class docutils literal notranslate"><span class="pre">Gaussian</span></code></a></p></li>
215,216d215
< <li><p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Angle" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Angle"><code class="xref any py py-class docutils literal notranslate"><span class="pre">Angle</span></code></a></p></li>
< <li><p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Gaussian" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Gaussian"><code class="xref any py py-class docutils literal notranslate"><span class="pre">Gaussian</span></code></a></p></li>
223a223
> <li><p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Angle" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Angle"><code class="xref any py py-class docutils literal notranslate"><span class="pre">Angle</span></code></a></p></li>
230c230,231
< <p>Functions that transform their variable but maintain its shape.</p>
---
> <p>TransferFunctions transform their variable but maintain its shape.  There are two subclasses of TransferFunctions –
> <code class="xref any docutils literal notranslate"><span class="pre">Deterministic</span></code> and <a href="#id1"><span class="problematic" id="id2">`</span></a>Probabilistic &lt;Probabilistic&gt; – that have specialized attributes and/or methods.</p>
233,235c234,236
< <p>All TransferFunctions have the following attributes: <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.bounds" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.bounds"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">bounds</span></code></a>,
< <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.scale" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.scale"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">scale</span></code></a>, and <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.offset" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.offset"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">offset</span></code></a>. In addition, they have a standardized pair of
< modulable parameters that are aliased to one of their primary parameters:</p>
---
> <p>All TransferFunctions have a <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.range" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.range"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">range</span></code></a> attribute that specifies the lower and upper limits
> of the function’s result.  For some subclasses, this may be modified by other parameters.  In addition, all
> TransferFunctions have a pair of modulable parameters as described below.</p>
238,240c239
< each of these is assigned the name of one of the function’s parameters and used by <a class="reference internal" href="ModulatoryProjection.html"><span class="doc">ModulatoryProjections</span></a> to modulate the output of the TransferFunction’s function (see <a class="reference internal" href="Functions.html#function-modulatory-params"><span class="std std-ref">Modulatory Parameters</span></a>).
< By default, <strong>multiplicative_param</strong> is assigned to the function’s <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.scale" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.scale"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">scale</span></code></a> Parameter
< and <strong>additive_param</strong> is assigned to the function’s <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.offset" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.offset"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">offset</span></code></a> Parameter.</p></li>
---
> each of these is assigned the name of one of the function’s parameters and used by <a class="reference internal" href="ModulatoryProjection.html"><span class="doc">ModulatoryProjections</span></a> to modulate the output of the TransferFunction’s function (see <a class="reference internal" href="Functions.html#function-modulatory-params"><span class="std std-ref">Modulatory Parameters</span></a>).</p></li>
616c615
< <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.nonstateful.transferfunctions.</span></span><span class="sig-name descname"><span class="pre">Exponential</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default_variable</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bias</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">owner</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential" title="Permalink to this definition">¶</a></dt>
---
> <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.nonstateful.transferfunctions.</span></span><span class="sig-name descname"><span class="pre">Exponential</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default_variable</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bias</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">owner</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential" title="Permalink to this definition">¶</a></dt>
620c619
< <p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.derivative" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.derivative"><code class="xref any py py-meth docutils literal notranslate"><span class="pre">derivative</span></code></a> returns the derivative of the Exponential:</p>
---
> <p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.derivative" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.derivative"><code class="xref any py py-meth docutils literal notranslate"><span class="pre">derivative</span></code></a> returns the derivative of the Exponential Function:</p>
622c621
< \[rate*input+bias\]</div>
---
> \[scale*rate*(input+bias)*e^{rate*input+bias}\]</div>
630,632c629,631
< <li><p><strong>scale</strong> (<em>float : default 1.0</em>) – specifies a value by which to multiply the exponentiated value of <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.variable" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.variable"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">variable</span></code></a>.</p></li>
< <li><p><strong>offset</strong> (<em>float : default 0.0</em>) – specifies value to add to the exponentiated value of <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.variable" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.variable"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">variable</span></code></a>
< after multiplying by <code class="xref any docutils literal notranslate"><span class="pre">scale</span></code>.</p></li>
---
> <li><p><strong>scale</strong> (<em>float : default 1.0</em>) – specifies the value by which the result of the function is multiplied, before <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.offset" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.offset"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">offset</span></code></a> is
> added.</p></li>
> <li><p><strong>offset</strong> (<em>float : default 0.0</em>) – specifies the value added to the result of the function after <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.scale" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.scale"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">scale</span></code></a> has been applied.</p></li>
678,680c677,679
< <dt class="sig sig-object py" id="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.scale">
< <span class="sig-name descname"><span class="pre">scale</span></span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.scale" title="Permalink to this definition">¶</a></dt>
< <dd><p>value by which the exponentiated value is multiplied.</p>
---
> <dt class="sig sig-object py" id="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.range">
> <span class="sig-name descname"><span class="pre">range</span></span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.r
...

See CI logs for the full diff.

Copy link

github-actions bot commented Feb 1, 2025

This PR causes the following changes to the html docs (ubuntu-latest-3.11):

diff -r docs-base/Function.html docs-head/Function.html
463c463
< <dd><p>Implement abstract class for Function category of Component class</p>
---
> <dd><p>Abstract base class for Function category of Component class</p>
diff -r docs-base/Functions.html docs-head/Functions.html
461c461
< <dd><p>Implement abstract class for Function category of Component class</p>
---
> <dd><p>Abstract base class for Function category of Component class</p>
diff -r docs-base/Mechanism.html docs-head/Mechanism.html
1013c1013
< <dd><p>Base class for Mechanism.</p>
---
> <dd><p>Abstract base class for Mechanism.</p>
diff -r docs-base/Projection.html docs-head/Projection.html
567c567
< <dd><p>Base class for all Projections.</p>
---
> <dd><p>Abstract base class for all Projections.</p>
diff -r docs-base/SelectionFunctions.html docs-head/SelectionFunctions.html
343d342
< <li><p><strong>bounds</strong> (<em>None</em>) – </p></li>
diff -r docs-base/TimerFunctions.html docs-head/TimerFunctions.html
991c991
< <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.nonstateful.timerfunctions.</span></span><span class="sig-name descname"><span class="pre">TimerFunction</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.timerfunctions.TimerFunction" title="Permalink to this definition">¶</a></dt>
---
> <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.nonstateful.timerfunctions.</span></span><span class="sig-name descname"><span class="pre">TimerFunction</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default_variable</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">owner</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.timerfunctions.TimerFunction" title="Permalink to this definition">¶</a></dt>
diff -r docs-base/TransferFunctions.html docs-head/TransferFunctions.html
211a212
> <li><p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Gaussian" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Gaussian"><code class="xref any py py-class docutils literal notranslate"><span class="pre">Gaussian</span></code></a></p></li>
215,216d215
< <li><p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Angle" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Angle"><code class="xref any py py-class docutils literal notranslate"><span class="pre">Angle</span></code></a></p></li>
< <li><p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Gaussian" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Gaussian"><code class="xref any py py-class docutils literal notranslate"><span class="pre">Gaussian</span></code></a></p></li>
223a223
> <li><p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Angle" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Angle"><code class="xref any py py-class docutils literal notranslate"><span class="pre">Angle</span></code></a></p></li>
230c230,231
< <p>Functions that transform their variable but maintain its shape.</p>
---
> <p>TransferFunctions transform their variable but maintain its shape.  There are two subclasses of TransferFunctions –
> <code class="xref any docutils literal notranslate"><span class="pre">Deterministic</span></code> and <a href="#id1"><span class="problematic" id="id2">`</span></a>Probabilistic &lt;Probabilistic&gt; – that have specialized attributes and/or methods.</p>
233,235c234,236
< <p>All TransferFunctions have the following attributes: <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.bounds" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.bounds"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">bounds</span></code></a>,
< <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.scale" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.scale"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">scale</span></code></a>, and <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.offset" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.offset"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">offset</span></code></a>. In addition, they have a standardized pair of
< modulable parameters that are aliased to one of their primary parameters:</p>
---
> <p>All TransferFunctions have a <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.range" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.range"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">range</span></code></a> attribute that specifies the lower and upper limits
> of the function’s result.  For some subclasses, this may be modified by other parameters.  In addition, all
> TransferFunctions have a pair of modulable parameters as described below.</p>
238,240c239
< each of these is assigned the name of one of the function’s parameters and used by <a class="reference internal" href="ModulatoryProjection.html"><span class="doc">ModulatoryProjections</span></a> to modulate the output of the TransferFunction’s function (see <a class="reference internal" href="Functions.html#function-modulatory-params"><span class="std std-ref">Modulatory Parameters</span></a>).
< By default, <strong>multiplicative_param</strong> is assigned to the function’s <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.scale" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.scale"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">scale</span></code></a> Parameter
< and <strong>additive_param</strong> is assigned to the function’s <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.offset" title="psyneulink.core.components.functions.nonstateful.transferfunctions.TransferFunction.offset"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">offset</span></code></a> Parameter.</p></li>
---
> each of these is assigned the name of one of the function’s parameters and used by <a class="reference internal" href="ModulatoryProjection.html"><span class="doc">ModulatoryProjections</span></a> to modulate the output of the TransferFunction’s function (see <a class="reference internal" href="Functions.html#function-modulatory-params"><span class="std std-ref">Modulatory Parameters</span></a>).</p></li>
616c615
< <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.nonstateful.transferfunctions.</span></span><span class="sig-name descname"><span class="pre">Exponential</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default_variable</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bias</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">owner</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential" title="Permalink to this definition">¶</a></dt>
---
> <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.nonstateful.transferfunctions.</span></span><span class="sig-name descname"><span class="pre">Exponential</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default_variable</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bias</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">owner</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential" title="Permalink to this definition">¶</a></dt>
620c619
< <p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.derivative" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.derivative"><code class="xref any py py-meth docutils literal notranslate"><span class="pre">derivative</span></code></a> returns the derivative of the Exponential:</p>
---
> <p><a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.derivative" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.derivative"><code class="xref any py py-meth docutils literal notranslate"><span class="pre">derivative</span></code></a> returns the derivative of the Exponential Function:</p>
622c621
< \[rate*input+bias\]</div>
---
> \[scale*rate*(input+bias)*e^{rate*input+bias}\]</div>
630,632c629,631
< <li><p><strong>scale</strong> (<em>float : default 1.0</em>) – specifies a value by which to multiply the exponentiated value of <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.variable" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.variable"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">variable</span></code></a>.</p></li>
< <li><p><strong>offset</strong> (<em>float : default 0.0</em>) – specifies value to add to the exponentiated value of <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.variable" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.variable"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">variable</span></code></a>
< after multiplying by <code class="xref any docutils literal notranslate"><span class="pre">scale</span></code>.</p></li>
---
> <li><p><strong>scale</strong> (<em>float : default 1.0</em>) – specifies the value by which the result of the function is multiplied, before <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.offset" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.offset"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">offset</span></code></a> is
> added.</p></li>
> <li><p><strong>offset</strong> (<em>float : default 0.0</em>) – specifies the value added to the result of the function after <a class="reference internal" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.scale" title="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.scale"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">scale</span></code></a> has been applied.</p></li>
678,680c677,679
< <dt class="sig sig-object py" id="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.scale">
< <span class="sig-name descname"><span class="pre">scale</span></span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.scale" title="Permalink to this definition">¶</a></dt>
< <dd><p>value by which the exponentiated value is multiplied.</p>
---
> <dt class="sig sig-object py" id="psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.range">
> <span class="sig-name descname"><span class="pre">range</span></span><a class="headerlink" href="#psyneulink.core.components.functions.nonstateful.transferfunctions.Exponential.r
...

See CI logs for the full diff.

@coveralls
Copy link

coveralls commented Feb 1, 2025

Coverage Status

coverage: 83.82% (-0.2%) from 84.047%
when pulling 7a343b8 on refactor/transferfunction/scale_and_offset
into 1fed0ad on devel.

@jdcpni jdcpni merged commit 7cacab6 into devel Feb 1, 2025
65 checks passed
@jdcpni jdcpni deleted the refactor/transferfunction/scale_and_offset branch February 1, 2025 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants