Skip to content

Commit 9e49bd1

Browse files
authored
feat: efficient checking on numerical values (#217)
feat: efficient checking on numerical values
2 parents 23ae81c + d3de55e commit 9e49bd1

File tree

20 files changed

+110
-732
lines changed

20 files changed

+110
-732
lines changed

brainpy/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,9 @@
3636
from . import integrators
3737
from .integrators import ode
3838
from .integrators import sde
39-
from .integrators import dde
4039
from .integrators import fde
4140
from .integrators.ode import odeint
4241
from .integrators.sde import sdeint
43-
from .integrators.dde import ddeint
4442
from .integrators.fde import fdeint
4543
from .integrators.joint_eq import JointEq
4644

brainpy/dyn/rates/populations.py

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,16 @@
22

33
from typing import Union, Callable
44

5-
import numpy as np
6-
from jax.experimental.host_callback import id_tap
7-
85
import brainpy.math as bm
96
from brainpy import check
107
from brainpy.dyn.base import NeuGroup
8+
from brainpy.dyn.others.noises import OUProcess
119
from brainpy.initialize import Initializer, Uniform, init_param, ZeroInit
12-
from brainpy.integrators.dde import ddeint
1310
from brainpy.integrators.joint_eq import JointEq
1411
from brainpy.integrators.ode import odeint
1512
from brainpy.tools.checking import check_float, check_initializer
13+
from brainpy.tools.errors import check_error_in_jit
1614
from brainpy.types import Shape, Tensor
17-
from brainpy.dyn.others.noises import OUProcess
1815

1916
__all__ = [
2017
'Population',
@@ -307,7 +304,7 @@ def __init__(
307304
method=sde_method)
308305

309306
# integral
310-
self.integral = ddeint(method=method,
307+
self.integral = odeint(method=method,
311308
f=JointEq([self.dx, self.dy]),
312309
state_delays={'V': self.x_delay})
313310

@@ -327,15 +324,14 @@ def dx(self, x, t, y, x_ext):
327324
def dy(self, y, t, x, y_ext):
328325
return (x + self.a - self.b * y + y_ext) / self.tau
329326

330-
def _check_dt(self, dt, *args):
331-
if np.absolute(dt - self.dt) > 1e-6:
332-
raise ValueError(f'The "dt" {dt} used in model running is '
333-
f'not consistent with the "dt" {self.dt} '
334-
f'used in model definition.')
327+
def _check_dt(self, dt):
328+
raise ValueError(f'The "dt" {dt} used in model running is '
329+
f'not consistent with the "dt" {self.dt} '
330+
f'used in model definition.')
335331

336332
def update(self, t, dt):
337333
if check.is_checking():
338-
id_tap(self._check_dt, dt)
334+
check_error_in_jit(not bm.isclose(dt, self.dt), self._check_dt, dt)
339335
if self.x_ou is not None:
340336
self.input += self.x_ou.x
341337
self.x_ou.update(t, dt)
@@ -882,5 +878,3 @@ def update(self, t, dt):
882878
self.i.value = bm.maximum(self.i + di * dt, 0.)
883879
self.Ie[:] = 0.
884880
self.Ii[:] = 0.
885-
886-

brainpy/integrators/__init__.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,5 @@
4242
set_default_fdeint,
4343
register_fde_integrator)
4444

45-
# DDE tools
46-
from . import dde
47-
from .dde import ddeint
48-
49-
5045
# PDE tools
5146
from . import pde

brainpy/integrators/dde/__init__.py

Lines changed: 0 additions & 9 deletions
This file was deleted.

brainpy/integrators/dde/base.py

Lines changed: 0 additions & 137 deletions
This file was deleted.

0 commit comments

Comments
 (0)