diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index d5d705b6e..35b598979 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-kinetic-schemes.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-kinetic-schemes.ipynb index 7145a3a67..7965e3257 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-kinetic-schemes.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-kinetic-schemes.ipynb @@ -152,10 +152,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:37.874229Z", - "iopub.status.busy": "2024-10-03T12:10:37.874037Z", - "iopub.status.idle": "2024-10-03T12:10:38.672948Z", - "shell.execute_reply": "2024-10-03T12:10:38.672048Z" + "iopub.execute_input": "2024-10-03T12:53:30.783426Z", + "iopub.status.busy": "2024-10-03T12:53:30.782953Z", + "iopub.status.idle": "2024-10-03T12:53:31.572588Z", + "shell.execute_reply": "2024-10-03T12:53:31.571844Z" } }, "outputs": [], @@ -169,10 +169,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.675507Z", - "iopub.status.busy": "2024-10-03T12:10:38.675296Z", - "iopub.status.idle": "2024-10-03T12:10:38.705683Z", - "shell.execute_reply": "2024-10-03T12:10:38.705014Z" + "iopub.execute_input": "2024-10-03T12:53:31.575177Z", + "iopub.status.busy": "2024-10-03T12:53:31.574962Z", + "iopub.status.idle": "2024-10-03T12:53:31.605820Z", + "shell.execute_reply": "2024-10-03T12:53:31.605215Z" } }, "outputs": [], @@ -277,10 +277,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.708080Z", - "iopub.status.busy": "2024-10-03T12:10:38.707677Z", - "iopub.status.idle": "2024-10-03T12:10:38.712483Z", - "shell.execute_reply": "2024-10-03T12:10:38.711828Z" + "iopub.execute_input": "2024-10-03T12:53:31.608118Z", + "iopub.status.busy": "2024-10-03T12:53:31.607714Z", + "iopub.status.idle": "2024-10-03T12:53:31.612301Z", + "shell.execute_reply": "2024-10-03T12:53:31.611686Z" } }, "outputs": [ @@ -323,10 +323,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.741994Z", - "iopub.status.busy": "2024-10-03T12:10:38.741603Z", - "iopub.status.idle": "2024-10-03T12:10:38.745634Z", - "shell.execute_reply": "2024-10-03T12:10:38.744987Z" + "iopub.execute_input": "2024-10-03T12:53:31.642481Z", + "iopub.status.busy": "2024-10-03T12:53:31.642036Z", + "iopub.status.idle": "2024-10-03T12:53:31.645765Z", + "shell.execute_reply": "2024-10-03T12:53:31.645211Z" } }, "outputs": [ @@ -367,10 +367,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.747637Z", - "iopub.status.busy": "2024-10-03T12:10:38.747263Z", - "iopub.status.idle": "2024-10-03T12:10:38.751127Z", - "shell.execute_reply": "2024-10-03T12:10:38.750495Z" + "iopub.execute_input": "2024-10-03T12:53:31.647932Z", + "iopub.status.busy": "2024-10-03T12:53:31.647561Z", + "iopub.status.idle": "2024-10-03T12:53:31.650957Z", + "shell.execute_reply": "2024-10-03T12:53:31.650394Z" }, "scrolled": true }, @@ -412,10 +412,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.753263Z", - "iopub.status.busy": "2024-10-03T12:10:38.752889Z", - "iopub.status.idle": "2024-10-03T12:10:38.756894Z", - "shell.execute_reply": "2024-10-03T12:10:38.756227Z" + "iopub.execute_input": "2024-10-03T12:53:31.653025Z", + "iopub.status.busy": "2024-10-03T12:53:31.652662Z", + "iopub.status.idle": "2024-10-03T12:53:31.656131Z", + "shell.execute_reply": "2024-10-03T12:53:31.655600Z" }, "scrolled": true }, @@ -459,10 +459,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.758884Z", - "iopub.status.busy": "2024-10-03T12:10:38.758643Z", - "iopub.status.idle": "2024-10-03T12:10:38.763451Z", - "shell.execute_reply": "2024-10-03T12:10:38.762794Z" + "iopub.execute_input": "2024-10-03T12:53:31.658264Z", + "iopub.status.busy": "2024-10-03T12:53:31.657807Z", + "iopub.status.idle": "2024-10-03T12:53:31.662075Z", + "shell.execute_reply": "2024-10-03T12:53:31.661524Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-python-tutorial.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-python-tutorial.ipynb index 9b4f8a732..c604c26d2 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-python-tutorial.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-python-tutorial.ipynb @@ -30,10 +30,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:43.871758Z", - "iopub.status.busy": "2024-10-03T12:10:43.871286Z", - "iopub.status.idle": "2024-10-03T12:10:44.673624Z", - "shell.execute_reply": "2024-10-03T12:10:44.672789Z" + "iopub.execute_input": "2024-10-03T12:53:37.035835Z", + "iopub.status.busy": "2024-10-03T12:53:37.035286Z", + "iopub.status.idle": "2024-10-03T12:53:37.829087Z", + "shell.execute_reply": "2024-10-03T12:53:37.828309Z" } }, "outputs": [], @@ -63,10 +63,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.676305Z", - "iopub.status.busy": "2024-10-03T12:10:44.675876Z", - "iopub.status.idle": "2024-10-03T12:10:44.704620Z", - "shell.execute_reply": "2024-10-03T12:10:44.703969Z" + "iopub.execute_input": "2024-10-03T12:53:37.831896Z", + "iopub.status.busy": "2024-10-03T12:53:37.831469Z", + "iopub.status.idle": "2024-10-03T12:53:37.860553Z", + "shell.execute_reply": "2024-10-03T12:53:37.859808Z" } }, "outputs": [], @@ -86,10 +86,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.707090Z", - "iopub.status.busy": "2024-10-03T12:10:44.706697Z", - "iopub.status.idle": "2024-10-03T12:10:44.710139Z", - "shell.execute_reply": "2024-10-03T12:10:44.709613Z" + "iopub.execute_input": "2024-10-03T12:53:37.863221Z", + "iopub.status.busy": "2024-10-03T12:53:37.862820Z", + "iopub.status.idle": "2024-10-03T12:53:37.866302Z", + "shell.execute_reply": "2024-10-03T12:53:37.865735Z" } }, "outputs": [], @@ -152,10 +152,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.712251Z", - "iopub.status.busy": "2024-10-03T12:10:44.711882Z", - "iopub.status.idle": "2024-10-03T12:10:44.715909Z", - "shell.execute_reply": "2024-10-03T12:10:44.715394Z" + "iopub.execute_input": "2024-10-03T12:53:37.868260Z", + "iopub.status.busy": "2024-10-03T12:53:37.867925Z", + "iopub.status.idle": "2024-10-03T12:53:37.871702Z", + "shell.execute_reply": "2024-10-03T12:53:37.871042Z" } }, "outputs": [], @@ -183,10 +183,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.717990Z", - "iopub.status.busy": "2024-10-03T12:10:44.717644Z", - "iopub.status.idle": "2024-10-03T12:10:44.721336Z", - "shell.execute_reply": "2024-10-03T12:10:44.720654Z" + "iopub.execute_input": "2024-10-03T12:53:37.873885Z", + "iopub.status.busy": "2024-10-03T12:53:37.873511Z", + "iopub.status.idle": "2024-10-03T12:53:37.877093Z", + "shell.execute_reply": "2024-10-03T12:53:37.876479Z" } }, "outputs": [ @@ -235,10 +235,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.723587Z", - "iopub.status.busy": "2024-10-03T12:10:44.723129Z", - "iopub.status.idle": "2024-10-03T12:10:44.727013Z", - "shell.execute_reply": "2024-10-03T12:10:44.726505Z" + "iopub.execute_input": "2024-10-03T12:53:37.879163Z", + "iopub.status.busy": "2024-10-03T12:53:37.878705Z", + "iopub.status.idle": "2024-10-03T12:53:37.882649Z", + "shell.execute_reply": "2024-10-03T12:53:37.882015Z" } }, "outputs": [], @@ -260,10 +260,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.729077Z", - "iopub.status.busy": "2024-10-03T12:10:44.728712Z", - "iopub.status.idle": "2024-10-03T12:10:44.732552Z", - "shell.execute_reply": "2024-10-03T12:10:44.731998Z" + "iopub.execute_input": "2024-10-03T12:53:37.884884Z", + "iopub.status.busy": "2024-10-03T12:53:37.884427Z", + "iopub.status.idle": "2024-10-03T12:53:37.888122Z", + "shell.execute_reply": "2024-10-03T12:53:37.887473Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.734535Z", - "iopub.status.busy": "2024-10-03T12:10:44.734176Z", - "iopub.status.idle": "2024-10-03T12:10:44.741725Z", - "shell.execute_reply": "2024-10-03T12:10:44.741116Z" + "iopub.execute_input": "2024-10-03T12:53:37.890127Z", + "iopub.status.busy": "2024-10-03T12:53:37.889774Z", + "iopub.status.idle": "2024-10-03T12:53:37.896685Z", + "shell.execute_reply": "2024-10-03T12:53:37.896141Z" } }, "outputs": [ @@ -365,10 +365,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.743523Z", - "iopub.status.busy": "2024-10-03T12:10:44.743328Z", - "iopub.status.idle": "2024-10-03T12:10:44.747881Z", - "shell.execute_reply": "2024-10-03T12:10:44.747336Z" + "iopub.execute_input": "2024-10-03T12:53:37.898764Z", + "iopub.status.busy": "2024-10-03T12:53:37.898388Z", + "iopub.status.idle": "2024-10-03T12:53:37.902560Z", + "shell.execute_reply": "2024-10-03T12:53:37.901902Z" } }, "outputs": [ @@ -416,10 +416,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.750010Z", - "iopub.status.busy": "2024-10-03T12:10:44.749541Z", - "iopub.status.idle": "2024-10-03T12:10:44.752778Z", - "shell.execute_reply": "2024-10-03T12:10:44.752254Z" + "iopub.execute_input": "2024-10-03T12:53:37.904619Z", + "iopub.status.busy": "2024-10-03T12:53:37.904246Z", + "iopub.status.idle": "2024-10-03T12:53:37.907501Z", + "shell.execute_reply": "2024-10-03T12:53:37.906984Z" } }, "outputs": [], @@ -441,10 +441,10 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.754696Z", - "iopub.status.busy": "2024-10-03T12:10:44.754490Z", - "iopub.status.idle": "2024-10-03T12:10:44.758318Z", - "shell.execute_reply": "2024-10-03T12:10:44.757678Z" + "iopub.execute_input": "2024-10-03T12:53:37.909562Z", + "iopub.status.busy": "2024-10-03T12:53:37.909265Z", + "iopub.status.idle": "2024-10-03T12:53:37.912822Z", + "shell.execute_reply": "2024-10-03T12:53:37.912297Z" } }, "outputs": [ @@ -510,10 +510,10 @@ "execution_count": 12, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.760294Z", - "iopub.status.busy": "2024-10-03T12:10:44.759921Z", - "iopub.status.idle": "2024-10-03T12:10:44.763093Z", - "shell.execute_reply": "2024-10-03T12:10:44.762563Z" + "iopub.execute_input": "2024-10-03T12:53:37.914881Z", + "iopub.status.busy": "2024-10-03T12:53:37.914499Z", + "iopub.status.idle": "2024-10-03T12:53:37.917949Z", + "shell.execute_reply": "2024-10-03T12:53:37.917382Z" } }, "outputs": [ @@ -548,10 +548,10 @@ "execution_count": 13, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.765054Z", - "iopub.status.busy": "2024-10-03T12:10:44.764711Z", - "iopub.status.idle": "2024-10-03T12:10:44.768079Z", - "shell.execute_reply": "2024-10-03T12:10:44.767535Z" + "iopub.execute_input": "2024-10-03T12:53:37.920100Z", + "iopub.status.busy": "2024-10-03T12:53:37.919730Z", + "iopub.status.idle": "2024-10-03T12:53:37.922960Z", + "shell.execute_reply": "2024-10-03T12:53:37.922370Z" } }, "outputs": [ @@ -584,10 +584,10 @@ "execution_count": 14, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.770162Z", - "iopub.status.busy": "2024-10-03T12:10:44.769780Z", - "iopub.status.idle": "2024-10-03T12:10:44.773170Z", - "shell.execute_reply": "2024-10-03T12:10:44.772643Z" + "iopub.execute_input": "2024-10-03T12:53:37.925054Z", + "iopub.status.busy": "2024-10-03T12:53:37.924683Z", + "iopub.status.idle": "2024-10-03T12:53:37.928069Z", + "shell.execute_reply": "2024-10-03T12:53:37.927540Z" } }, "outputs": [ @@ -622,10 +622,10 @@ "execution_count": 15, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.775293Z", - "iopub.status.busy": "2024-10-03T12:10:44.774919Z", - "iopub.status.idle": "2024-10-03T12:10:44.778777Z", - "shell.execute_reply": "2024-10-03T12:10:44.778239Z" + "iopub.execute_input": "2024-10-03T12:53:37.930066Z", + "iopub.status.busy": "2024-10-03T12:53:37.929689Z", + "iopub.status.idle": "2024-10-03T12:53:37.933528Z", + "shell.execute_reply": "2024-10-03T12:53:37.932976Z" } }, "outputs": [ @@ -669,10 +669,10 @@ "execution_count": 16, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.780924Z", - "iopub.status.busy": "2024-10-03T12:10:44.780536Z", - "iopub.status.idle": "2024-10-03T12:10:44.785749Z", - "shell.execute_reply": "2024-10-03T12:10:44.785154Z" + "iopub.execute_input": "2024-10-03T12:53:37.935625Z", + "iopub.status.busy": "2024-10-03T12:53:37.935258Z", + "iopub.status.idle": "2024-10-03T12:53:37.940431Z", + "shell.execute_reply": "2024-10-03T12:53:37.939897Z" } }, "outputs": [ @@ -733,10 +733,10 @@ "execution_count": 17, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.787767Z", - "iopub.status.busy": "2024-10-03T12:10:44.787389Z", - "iopub.status.idle": "2024-10-03T12:10:44.790841Z", - "shell.execute_reply": "2024-10-03T12:10:44.790300Z" + "iopub.execute_input": "2024-10-03T12:53:37.942482Z", + "iopub.status.busy": "2024-10-03T12:53:37.942107Z", + "iopub.status.idle": "2024-10-03T12:53:37.945488Z", + "shell.execute_reply": "2024-10-03T12:53:37.944964Z" } }, "outputs": [], @@ -761,10 +761,10 @@ "execution_count": 18, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.792914Z", - "iopub.status.busy": "2024-10-03T12:10:44.792545Z", - "iopub.status.idle": "2024-10-03T12:10:44.802665Z", - "shell.execute_reply": "2024-10-03T12:10:44.802085Z" + "iopub.execute_input": "2024-10-03T12:53:37.947538Z", + "iopub.status.busy": "2024-10-03T12:53:37.947168Z", + "iopub.status.idle": "2024-10-03T12:53:37.957213Z", + "shell.execute_reply": "2024-10-03T12:53:37.956695Z" } }, "outputs": [], @@ -857,10 +857,10 @@ "execution_count": 19, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.804670Z", - "iopub.status.busy": "2024-10-03T12:10:44.804347Z", - "iopub.status.idle": "2024-10-03T12:10:44.808027Z", - "shell.execute_reply": "2024-10-03T12:10:44.807387Z" + "iopub.execute_input": "2024-10-03T12:53:37.959186Z", + "iopub.status.busy": "2024-10-03T12:53:37.958807Z", + "iopub.status.idle": "2024-10-03T12:53:37.962481Z", + "shell.execute_reply": "2024-10-03T12:53:37.961921Z" } }, "outputs": [ @@ -897,10 +897,10 @@ "execution_count": 20, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.810031Z", - "iopub.status.busy": "2024-10-03T12:10:44.809693Z", - "iopub.status.idle": "2024-10-03T12:10:44.815454Z", - "shell.execute_reply": "2024-10-03T12:10:44.814889Z" + "iopub.execute_input": "2024-10-03T12:53:37.964517Z", + "iopub.status.busy": "2024-10-03T12:53:37.964144Z", + "iopub.status.idle": "2024-10-03T12:53:37.969722Z", + "shell.execute_reply": "2024-10-03T12:53:37.969168Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-sympy-conductance.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-sympy-conductance.ipynb index 73bd917a5..a08e97bd2 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-sympy-conductance.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-sympy-conductance.ipynb @@ -86,10 +86,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:47.208422Z", - "iopub.status.busy": "2024-10-03T12:10:47.208234Z", - "iopub.status.idle": "2024-10-03T12:10:48.015451Z", - "shell.execute_reply": "2024-10-03T12:10:48.014551Z" + "iopub.execute_input": "2024-10-03T12:53:40.246245Z", + "iopub.status.busy": "2024-10-03T12:53:40.246043Z", + "iopub.status.idle": "2024-10-03T12:53:41.039561Z", + "shell.execute_reply": "2024-10-03T12:53:41.038749Z" } }, "outputs": [], @@ -103,10 +103,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.017970Z", - "iopub.status.busy": "2024-10-03T12:10:48.017753Z", - "iopub.status.idle": "2024-10-03T12:10:48.049158Z", - "shell.execute_reply": "2024-10-03T12:10:48.048387Z" + "iopub.execute_input": "2024-10-03T12:53:41.042228Z", + "iopub.status.busy": "2024-10-03T12:53:41.041772Z", + "iopub.status.idle": "2024-10-03T12:53:41.071790Z", + "shell.execute_reply": "2024-10-03T12:53:41.071070Z" } }, "outputs": [], @@ -149,10 +149,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.051647Z", - "iopub.status.busy": "2024-10-03T12:10:48.051392Z", - "iopub.status.idle": "2024-10-03T12:10:48.328469Z", - "shell.execute_reply": "2024-10-03T12:10:48.327705Z" + "iopub.execute_input": "2024-10-03T12:53:41.074355Z", + "iopub.status.busy": "2024-10-03T12:53:41.073856Z", + "iopub.status.idle": "2024-10-03T12:53:41.366199Z", + "shell.execute_reply": "2024-10-03T12:53:41.365502Z" } }, "outputs": [ @@ -196,10 +196,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.330837Z", - "iopub.status.busy": "2024-10-03T12:10:48.330318Z", - "iopub.status.idle": "2024-10-03T12:10:48.464220Z", - "shell.execute_reply": "2024-10-03T12:10:48.463540Z" + "iopub.execute_input": "2024-10-03T12:53:41.368585Z", + "iopub.status.busy": "2024-10-03T12:53:41.368155Z", + "iopub.status.idle": "2024-10-03T12:53:41.497314Z", + "shell.execute_reply": "2024-10-03T12:53:41.496681Z" } }, "outputs": [ @@ -243,10 +243,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.466507Z", - "iopub.status.busy": "2024-10-03T12:10:48.466033Z", - "iopub.status.idle": "2024-10-03T12:10:48.473983Z", - "shell.execute_reply": "2024-10-03T12:10:48.473409Z" + "iopub.execute_input": "2024-10-03T12:53:41.499956Z", + "iopub.status.busy": "2024-10-03T12:53:41.499389Z", + "iopub.status.idle": "2024-10-03T12:53:41.507549Z", + "shell.execute_reply": "2024-10-03T12:53:41.507006Z" } }, "outputs": [ @@ -290,10 +290,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.475797Z", - "iopub.status.busy": "2024-10-03T12:10:48.475601Z", - "iopub.status.idle": "2024-10-03T12:10:48.493262Z", - "shell.execute_reply": "2024-10-03T12:10:48.492590Z" + "iopub.execute_input": "2024-10-03T12:53:41.509388Z", + "iopub.status.busy": "2024-10-03T12:53:41.509191Z", + "iopub.status.idle": "2024-10-03T12:53:41.526364Z", + "shell.execute_reply": "2024-10-03T12:53:41.525804Z" } }, "outputs": [ @@ -337,10 +337,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.495519Z", - "iopub.status.busy": "2024-10-03T12:10:48.495130Z", - "iopub.status.idle": "2024-10-03T12:10:48.613387Z", - "shell.execute_reply": "2024-10-03T12:10:48.612725Z" + "iopub.execute_input": "2024-10-03T12:53:41.528334Z", + "iopub.status.busy": "2024-10-03T12:53:41.528134Z", + "iopub.status.idle": "2024-10-03T12:53:41.646554Z", + "shell.execute_reply": "2024-10-03T12:53:41.645978Z" } }, "outputs": [ @@ -400,10 +400,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.615536Z", - "iopub.status.busy": "2024-10-03T12:10:48.615132Z", - "iopub.status.idle": "2024-10-03T12:10:48.708041Z", - "shell.execute_reply": "2024-10-03T12:10:48.707403Z" + "iopub.execute_input": "2024-10-03T12:53:41.648442Z", + "iopub.status.busy": "2024-10-03T12:53:41.648249Z", + "iopub.status.idle": "2024-10-03T12:53:41.741537Z", + "shell.execute_reply": "2024-10-03T12:53:41.740969Z" } }, "outputs": [ @@ -456,10 +456,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.710205Z", - "iopub.status.busy": "2024-10-03T12:10:48.709808Z", - "iopub.status.idle": "2024-10-03T12:10:48.781793Z", - "shell.execute_reply": "2024-10-03T12:10:48.781134Z" + "iopub.execute_input": "2024-10-03T12:53:41.743421Z", + "iopub.status.busy": "2024-10-03T12:53:41.743226Z", + "iopub.status.idle": "2024-10-03T12:53:41.817242Z", + "shell.execute_reply": "2024-10-03T12:53:41.816596Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-cnexp.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-cnexp.ipynb index e96b3f73c..2f81dcc33 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-cnexp.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-cnexp.ipynb @@ -62,10 +62,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:50.684184Z", - "iopub.status.busy": "2024-10-03T12:10:50.683982Z", - "iopub.status.idle": "2024-10-03T12:10:51.470570Z", - "shell.execute_reply": "2024-10-03T12:10:51.469765Z" + "iopub.execute_input": "2024-10-03T12:53:43.573943Z", + "iopub.status.busy": "2024-10-03T12:53:43.573742Z", + "iopub.status.idle": "2024-10-03T12:53:44.357679Z", + "shell.execute_reply": "2024-10-03T12:53:44.356869Z" } }, "outputs": [], @@ -79,10 +79,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:51.472942Z", - "iopub.status.busy": "2024-10-03T12:10:51.472717Z", - "iopub.status.idle": "2024-10-03T12:10:51.503703Z", - "shell.execute_reply": "2024-10-03T12:10:51.503060Z" + "iopub.execute_input": "2024-10-03T12:53:44.360155Z", + "iopub.status.busy": "2024-10-03T12:53:44.359887Z", + "iopub.status.idle": "2024-10-03T12:53:44.390525Z", + "shell.execute_reply": "2024-10-03T12:53:44.389779Z" } }, "outputs": [], @@ -123,10 +123,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:51.505921Z", - "iopub.status.busy": "2024-10-03T12:10:51.505596Z", - "iopub.status.idle": "2024-10-03T12:10:51.923469Z", - "shell.execute_reply": "2024-10-03T12:10:51.922780Z" + "iopub.execute_input": "2024-10-03T12:53:44.392893Z", + "iopub.status.busy": "2024-10-03T12:53:44.392379Z", + "iopub.status.idle": "2024-10-03T12:53:44.806243Z", + "shell.execute_reply": "2024-10-03T12:53:44.805540Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:51.925816Z", - "iopub.status.busy": "2024-10-03T12:10:51.925393Z", - "iopub.status.idle": "2024-10-03T12:10:52.037064Z", - "shell.execute_reply": "2024-10-03T12:10:52.036459Z" + "iopub.execute_input": "2024-10-03T12:53:44.808450Z", + "iopub.status.busy": "2024-10-03T12:53:44.808054Z", + "iopub.status.idle": "2024-10-03T12:53:44.918352Z", + "shell.execute_reply": "2024-10-03T12:53:44.917681Z" } }, "outputs": [ @@ -207,10 +207,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:52.039411Z", - "iopub.status.busy": "2024-10-03T12:10:52.039012Z", - "iopub.status.idle": "2024-10-03T12:10:52.237940Z", - "shell.execute_reply": "2024-10-03T12:10:52.237307Z" + "iopub.execute_input": "2024-10-03T12:53:44.920505Z", + "iopub.status.busy": "2024-10-03T12:53:44.920123Z", + "iopub.status.idle": "2024-10-03T12:53:45.119585Z", + "shell.execute_reply": "2024-10-03T12:53:45.119019Z" } }, "outputs": [ @@ -255,10 +255,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:52.240132Z", - "iopub.status.busy": "2024-10-03T12:10:52.239729Z", - "iopub.status.idle": "2024-10-03T12:10:52.399368Z", - "shell.execute_reply": "2024-10-03T12:10:52.398691Z" + "iopub.execute_input": "2024-10-03T12:53:45.121727Z", + "iopub.status.busy": "2024-10-03T12:53:45.121332Z", + "iopub.status.idle": "2024-10-03T12:53:45.279371Z", + "shell.execute_reply": "2024-10-03T12:53:45.278824Z" } }, "outputs": [ @@ -303,10 +303,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:52.401647Z", - "iopub.status.busy": "2024-10-03T12:10:52.401250Z", - "iopub.status.idle": "2024-10-03T12:10:54.134217Z", - "shell.execute_reply": "2024-10-03T12:10:54.133588Z" + "iopub.execute_input": "2024-10-03T12:53:45.281552Z", + "iopub.status.busy": "2024-10-03T12:53:45.281164Z", + "iopub.status.idle": "2024-10-03T12:53:47.019572Z", + "shell.execute_reply": "2024-10-03T12:53:47.018921Z" } }, "outputs": [ @@ -351,10 +351,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:54.136580Z", - "iopub.status.busy": "2024-10-03T12:10:54.136189Z", - "iopub.status.idle": "2024-10-03T12:10:56.358843Z", - "shell.execute_reply": "2024-10-03T12:10:56.358160Z" + "iopub.execute_input": "2024-10-03T12:53:47.021908Z", + "iopub.status.busy": "2024-10-03T12:53:47.021515Z", + "iopub.status.idle": "2024-10-03T12:53:49.225877Z", + "shell.execute_reply": "2024-10-03T12:53:49.225246Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-derivimplicit.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-derivimplicit.ipynb index 0b6073897..78571a3eb 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-derivimplicit.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-derivimplicit.ipynb @@ -39,10 +39,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:58.062040Z", - "iopub.status.busy": "2024-10-03T12:10:58.061841Z", - "iopub.status.idle": "2024-10-03T12:10:58.857615Z", - "shell.execute_reply": "2024-10-03T12:10:58.856804Z" + "iopub.execute_input": "2024-10-03T12:53:50.936877Z", + "iopub.status.busy": "2024-10-03T12:53:50.936699Z", + "iopub.status.idle": "2024-10-03T12:53:51.725504Z", + "shell.execute_reply": "2024-10-03T12:53:51.724618Z" } }, "outputs": [], @@ -56,10 +56,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:58.860331Z", - "iopub.status.busy": "2024-10-03T12:10:58.859904Z", - "iopub.status.idle": "2024-10-03T12:10:58.890298Z", - "shell.execute_reply": "2024-10-03T12:10:58.889661Z" + "iopub.execute_input": "2024-10-03T12:53:51.728188Z", + "iopub.status.busy": "2024-10-03T12:53:51.727968Z", + "iopub.status.idle": "2024-10-03T12:53:51.758304Z", + "shell.execute_reply": "2024-10-03T12:53:51.757669Z" } }, "outputs": [], @@ -100,10 +100,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:58.892627Z", - "iopub.status.busy": "2024-10-03T12:10:58.892278Z", - "iopub.status.idle": "2024-10-03T12:10:59.378049Z", - "shell.execute_reply": "2024-10-03T12:10:59.377323Z" + "iopub.execute_input": "2024-10-03T12:53:51.760722Z", + "iopub.status.busy": "2024-10-03T12:53:51.760220Z", + "iopub.status.idle": "2024-10-03T12:53:52.247959Z", + "shell.execute_reply": "2024-10-03T12:53:52.247313Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:59.380321Z", - "iopub.status.busy": "2024-10-03T12:10:59.379887Z", - "iopub.status.idle": "2024-10-03T12:10:59.676667Z", - "shell.execute_reply": "2024-10-03T12:10:59.676016Z" + "iopub.execute_input": "2024-10-03T12:53:52.250123Z", + "iopub.status.busy": "2024-10-03T12:53:52.249846Z", + "iopub.status.idle": "2024-10-03T12:53:52.549588Z", + "shell.execute_reply": "2024-10-03T12:53:52.548945Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-sparse.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-sparse.ipynb index 4d80d0a95..36a7903cb 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-sparse.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-sparse.ipynb @@ -39,10 +39,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:11:01.034583Z", - "iopub.status.busy": "2024-10-03T12:11:01.034378Z", - "iopub.status.idle": "2024-10-03T12:11:01.836621Z", - "shell.execute_reply": "2024-10-03T12:11:01.835732Z" + "iopub.execute_input": "2024-10-03T12:53:54.044216Z", + "iopub.status.busy": "2024-10-03T12:53:54.044023Z", + "iopub.status.idle": "2024-10-03T12:53:54.862627Z", + "shell.execute_reply": "2024-10-03T12:53:54.861791Z" } }, "outputs": [], @@ -56,10 +56,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:11:01.839640Z", - "iopub.status.busy": "2024-10-03T12:11:01.839124Z", - "iopub.status.idle": "2024-10-03T12:11:01.869534Z", - "shell.execute_reply": "2024-10-03T12:11:01.868891Z" + "iopub.execute_input": "2024-10-03T12:53:54.865140Z", + "iopub.status.busy": "2024-10-03T12:53:54.864902Z", + "iopub.status.idle": "2024-10-03T12:53:54.897021Z", + "shell.execute_reply": "2024-10-03T12:53:54.896211Z" } }, "outputs": [], @@ -100,10 +100,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:11:01.871726Z", - "iopub.status.busy": "2024-10-03T12:11:01.871396Z", - "iopub.status.idle": "2024-10-03T12:11:02.361982Z", - "shell.execute_reply": "2024-10-03T12:11:02.361299Z" + "iopub.execute_input": "2024-10-03T12:53:54.899659Z", + "iopub.status.busy": "2024-10-03T12:53:54.899396Z", + "iopub.status.idle": "2024-10-03T12:53:55.389147Z", + "shell.execute_reply": "2024-10-03T12:53:55.388441Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:11:02.364448Z", - "iopub.status.busy": "2024-10-03T12:11:02.363978Z", - "iopub.status.idle": "2024-10-03T12:11:02.659972Z", - "shell.execute_reply": "2024-10-03T12:11:02.659263Z" + "iopub.execute_input": "2024-10-03T12:53:55.391353Z", + "iopub.status.busy": "2024-10-03T12:53:55.391095Z", + "iopub.status.idle": "2024-10-03T12:53:55.686550Z", + "shell.execute_reply": "2024-10-03T12:53:55.685825Z" } }, "outputs": [ diff --git a/doxygen/src_2main_8cpp.html b/doxygen/src_2main_8cpp.html index 28021ef71..9f0561838 100644 --- a/doxygen/src_2main_8cpp.html +++ b/doxygen/src_2main_8cpp.html @@ -176,7 +176,7 @@

-

Definition at line 625 of file main.cpp.

+

Definition at line 622 of file main.cpp.

@@ -242,7 +242,6 @@

329  /// whether to update existing symbol table or create new
330  /// one whenever we run symtab visitor.
331  bool update_symtab = false;
-
332 
-
333  /// just visit the ast
-
334  AstVisitor().visit_program(*ast);
-
335 
-
336  {
-
337  logger->info("Running argument renaming visitor");
-
338  RenameFunctionArgumentsVisitor().visit_program(*ast);
-
339  }
-
340 
-
341  /// construct symbol table
-
342  {
-
343  logger->info("Running symtab visitor");
-
344  SymtabVisitor(update_symtab).visit_program(*ast);
-
345  }
-
346 
-
347  /// Check some rules that ast should follow
-
348  {
-
349  logger->info("Running semantic analysis visitor");
-
350  if (SemanticAnalysisVisitor(oacc_backend).check(*ast)) {
-
351  return 1;
-
352  }
-
353  }
-
354 
-
355  /// use cnexp instead of after_cvode solve method
-
356  {
-
357  logger->info("Running CVode to cnexp visitor");
-
358  AfterCVodeToCnexpVisitor().visit_program(*ast);
-
359  ast_to_nmodl(*ast, filepath("after_cvode_to_cnexp"));
-
360  }
-
361 
-
362  /// GLOBAL to RANGE rename visitor
-
363  if (nmodl_global_to_range) {
-
364  // make sure to run perf visitor because code generator
-
365  // looks for read/write counts const/non-const declaration
-
366  PerfVisitor().visit_program(*ast);
-
367  // make sure to run the GlobalToRange visitor after all the
-
368  // reinitializations of Symtab
-
369  logger->info("Running GlobalToRange visitor");
-
370  GlobalToRangeVisitor(*ast).visit_program(*ast);
-
371  SymtabVisitor(update_symtab).visit_program(*ast);
-
372  ast_to_nmodl(*ast, filepath("global_to_range"));
-
373  }
-
374 
-
375  /// LOCAL to ASSIGNED visitor
-
376  if (nmodl_local_to_range) {
-
377  logger->info("Running LOCAL to ASSIGNED visitor");
-
378  PerfVisitor().visit_program(*ast);
-
379  LocalToAssignedVisitor().visit_program(*ast);
-
380  SymtabVisitor(update_symtab).visit_program(*ast);
-
381  ast_to_nmodl(*ast, filepath("local_to_assigned"));
-
382  }
-
383 
-
384  {
-
385  // Compatibility Checking
-
386  logger->info("Running code compatibility checker");
-
387  // run perfvisitor to update read/write counts
-
388  PerfVisitor().visit_program(*ast);
-
389 
-
390  auto compatibility_visitor = CodegenCompatibilityVisitor(simulator_name);
-
391  // If we want to just check compatibility we return the result
-
392  if (only_check_compatibility) {
-
393  return compatibility_visitor.find_unhandled_ast_nodes(*ast);
-
394  }
-
395 
-
396  // If there is an incompatible construct and code generation is not forced exit NMODL
-
397  if (compatibility_visitor.find_unhandled_ast_nodes(*ast) && !force_codegen) {
-
398  return 1;
-
399  }
-
400  }
-
401 
-
402  if (show_symtab) {
-
403  logger->info("Printing symbol table");
-
404  auto symtab = ast->get_model_symbol_table();
-
405  symtab->print(std::cout);
-
406  }
-
407 
-
408  ast_to_nmodl(*ast, filepath("ast"));
-
409 
-
410  if (json_ast) {
-
411  std::filesystem::path file{scratch_dir};
-
412  file /= modfile + ".ast.json";
-
413  logger->info("Writing AST into {}", file.string());
-
414  JSONVisitor(file.string()).write(*ast);
-
415  }
-
416 
-
417  if (verbatim_rename) {
-
418  logger->info("Running verbatim rename visitor");
-
419  VerbatimVarRenameVisitor().visit_program(*ast);
-
420  ast_to_nmodl(*ast, filepath("verbatim_rename"));
-
421  }
-
422 
-
423  if (nmodl_const_folding) {
-
424  logger->info("Running nmodl constant folding visitor");
-
425  ConstantFolderVisitor().visit_program(*ast);
-
426  ast_to_nmodl(*ast, filepath("constfold"));
-
427  }
-
428 
-
429  if (nmodl_unroll) {
-
430  logger->info("Running nmodl loop unroll visitor");
-
431  LoopUnrollVisitor().visit_program(*ast);
-
432  ConstantFolderVisitor().visit_program(*ast);
-
433  ast_to_nmodl(*ast, filepath("unroll"));
-
434  SymtabVisitor(update_symtab).visit_program(*ast);
-
435  }
-
436 
-
437  /// note that we can not symtab visitor in update mode as we
-
438  /// replace kinetic block with derivative block of same name
-
439  /// in global scope
-
440  {
-
441  logger->info("Running KINETIC block visitor");
-
442  auto kineticBlockVisitor = KineticBlockVisitor();
-
443  kineticBlockVisitor.visit_program(*ast);
-
444  SymtabVisitor(update_symtab).visit_program(*ast);
-
445  const auto filename = filepath("kinetic");
-
446  ast_to_nmodl(*ast, filename);
-
447  if (nmodl_ast && kineticBlockVisitor.get_conserve_statement_count()) {
-
448  logger->warn(
-
449  fmt::format("{} presents non-standard CONSERVE statements in DERIVATIVE "
-
450  "blocks. Use it only for debugging/developing",
-
451  filename));
-
452  }
-
453  }
-
454 
-
455  {
-
456  logger->info("Running STEADYSTATE visitor");
-
457  SteadystateVisitor().visit_program(*ast);
-
458  SymtabVisitor(update_symtab).visit_program(*ast);
-
459  ast_to_nmodl(*ast, filepath("steadystate"));
-
460  }
-
461 
-
462  /// Parsing units fron "nrnunits.lib" and mod files
-
463  {
-
464  logger->info("Parsing Units");
-
465  UnitsVisitor(units_dir).visit_program(*ast);
-
466  }
-
467 
-
468  /// once we start modifying (especially removing) older constructs
-
469  /// from ast then we should run symtab visitor in update mode so
-
470  /// that old symbols (e.g. prime variables) are not lost
-
471  update_symtab = true;
-
472 
-
473  if (nmodl_inline) {
-
474  logger->info("Running nmodl inline visitor");
-
475  InlineVisitor().visit_program(*ast);
-
476  SymtabVisitor(update_symtab).visit_program(*ast);
-
477  ast_to_nmodl(*ast, filepath("inline"));
-
478  }
-
479 
-
480  if (local_rename) {
-
481  logger->info("Running local variable rename visitor");
-
482  LocalVarRenameVisitor().visit_program(*ast);
-
483  SymtabVisitor(update_symtab).visit_program(*ast);
-
484  ast_to_nmodl(*ast, filepath("local_rename"));
-
485  }
-
486 
-
487  if (nmodl_localize) {
-
488  // localize pass must follow rename pass to avoid conflict
-
489  logger->info("Running localize visitor");
-
490  LocalizeVisitor(localize_verbatim).visit_program(*ast);
-
491  LocalVarRenameVisitor().visit_program(*ast);
-
492  SymtabVisitor(update_symtab).visit_program(*ast);
-
493  ast_to_nmodl(*ast, filepath("localize"));
-
494  }
-
495 
-
496  const bool sympy_derivimplicit = neuron_code && solver_exists(*ast, "derivimplicit");
-
497  const bool sympy_linear = node_exists(*ast, ast::AstNodeType::LINEAR_BLOCK);
-
498  const bool sympy_sparse = solver_exists(*ast, "sparse");
-
499 
-
500  if (sympy_conductance || sympy_analytic || sympy_sparse || sympy_derivimplicit ||
-
501  sympy_linear) {
- -
503  .api()
- -
505  if (sympy_conductance) {
-
506  logger->info("Running sympy conductance visitor");
-
507  SympyConductanceVisitor().visit_program(*ast);
-
508  SymtabVisitor(update_symtab).visit_program(*ast);
-
509  ast_to_nmodl(*ast, filepath("sympy_conductance"));
-
510  }
-
511 
-
512  if (sympy_analytic || sympy_sparse || sympy_derivimplicit || sympy_linear) {
-
513  if (!sympy_analytic) {
-
514  logger->info("Automatically enabling sympy_analytic.");
-
515  if (sympy_sparse) {
-
516  logger->info("Required by 'SOLVE ... METHOD sparse'.");
-
517  }
-
518 
-
519  if (sympy_derivimplicit) {
-
520  logger->info("Required by 'SOLVE ... METHOD derivimplicit'.");
-
521  }
-
522 
-
523  if (sympy_linear) {
-
524  logger->info("Required by 'LINEAR' block.");
-
525  }
-
526  }
-
527  logger->info("Running sympy solve visitor");
-
528  SympySolverVisitor(sympy_pade, sympy_cse).visit_program(*ast);
-
529  SymtabVisitor(update_symtab).visit_program(*ast);
-
530  ast_to_nmodl(*ast, filepath("sympy_solve"));
-
531  }
- -
533  .api()
- -
535  }
-
536 
-
537  {
-
538  logger->info("Running cnexp visitor");
-
539  NeuronSolveVisitor().visit_program(*ast);
-
540  ast_to_nmodl(*ast, filepath("cnexp"));
-
541  }
-
542 
-
543  {
-
544  SolveBlockVisitor().visit_program(*ast);
-
545  SymtabVisitor(update_symtab).visit_program(*ast);
-
546  ast_to_nmodl(*ast, filepath("solveblock"));
-
547  }
-
548 
-
549  if (json_perfstat) {
-
550  std::string file{scratch_dir};
-
551  file.append("/");
-
552  file.append(modfile);
-
553  file.append(".perf.json");
-
554  logger->info("Writing performance statistics to {}", file);
-
555  PerfVisitor(file).visit_program(*ast);
-
556  }
-
557 
-
558  // Add implicit arguments (like celsius, nt) to NEURON functions (like
-
559  // nrn_ghk, at_time) whose signatures we have to massage.
-
560  ImplicitArgumentVisitor{simulator_name}.visit_program(*ast);
-
561  SymtabVisitor(update_symtab).visit_program(*ast);
-
562 
-
563  {
-
564  // make sure to run perf visitor because code generator
-
565  // looks for read/write counts const/non-const declaration
-
566  PerfVisitor().visit_program(*ast);
-
567  }
-
568 
-
569  {
- -
571  ast_to_nmodl(*ast, filepath("TransformVisitor"));
-
572  SymtabVisitor(update_symtab).visit_program(*ast);
-
573  }
-
574 
-
575  {
-
576  FunctionCallpathVisitor{}.visit_program(*ast);
-
577  ast_to_nmodl(*ast, filepath("FunctionCallpathVisitor"));
-
578  SymtabVisitor(update_symtab).visit_program(*ast);
-
579  }
-
580 
-
581  {
-
582  auto blame_level = detailed_blame ? utils::BlameLevel::Detailed
- -
584  if (coreneuron_code && oacc_backend) {
-
585  logger->info("Running OpenACC backend code generator for CoreNEURON");
-
586  CodegenAccVisitor visitor(modfile,
-
587  output_dir,
-
588  data_type,
-
589  optimize_ionvar_copies_codegen,
-
590  utils::make_blame(blame_line, blame_level));
-
591  visitor.visit_program(*ast);
-
592  }
-
593 
-
594  else if (coreneuron_code && !neuron_code && cpp_backend) {
-
595  logger->info("Running C++ backend code generator for CoreNEURON");
-
596  CodegenCoreneuronCppVisitor visitor(modfile,
-
597  output_dir,
-
598  data_type,
-
599  optimize_ionvar_copies_codegen,
-
600  utils::make_blame(blame_line, blame_level));
-
601  visitor.visit_program(*ast);
-
602  }
-
603 
-
604  else if (neuron_code && cpp_backend) {
-
605  logger->info("Running C++ backend code generator for NEURON");
-
606  CodegenNeuronCppVisitor visitor(modfile,
-
607  output_dir,
-
608  data_type,
-
609  optimize_ionvar_copies_codegen,
-
610  utils::make_blame(blame_line, blame_level));
-
611  visitor.visit_program(*ast);
-
612  }
-
613 
-
614  else {
-
615  throw std::runtime_error(
-
616  "Non valid code generation configuration. Code generation with NMODL is "
-
617  "supported for NEURON with C++ backend or CoreNEURON with C++/OpenACC "
-
618  "backends");
-
619  }
-
620  }
-
621  }
-
622  return EXIT_SUCCESS;
-
623 }
-
624 
-
625 int main(int argc, const char* argv[]) {
-
626  try {
-
627  return run_nmodl(argc, argv);
-
628  } catch (const std::runtime_error& e) {
-
629  std::cerr << "[FATAL] NMODL encountered an unhandled exception.\n";
-
630  std::cerr << " cwd = " << std::filesystem::current_path() << "\n";
-
631  std::cerr << " ";
-
632  for (int i = 0; i < argc; ++i) {
-
633  std::cerr << argv[i] << " ";
-
634  }
-
635  std::cerr << std::endl;
+
332 
+
333  {
+
334  logger->info("Running argument renaming visitor");
+
335  RenameFunctionArgumentsVisitor().visit_program(*ast);
+
336  }
+
337 
+
338  /// construct symbol table
+
339  {
+
340  logger->info("Running symtab visitor");
+
341  SymtabVisitor(update_symtab).visit_program(*ast);
+
342  }
+
343 
+
344  /// Check some rules that ast should follow
+
345  {
+
346  logger->info("Running semantic analysis visitor");
+
347  if (SemanticAnalysisVisitor(oacc_backend).check(*ast)) {
+
348  return 1;
+
349  }
+
350  }
+
351 
+
352  /// use cnexp instead of after_cvode solve method
+
353  {
+
354  logger->info("Running CVode to cnexp visitor");
+
355  AfterCVodeToCnexpVisitor().visit_program(*ast);
+
356  ast_to_nmodl(*ast, filepath("after_cvode_to_cnexp"));
+
357  }
+
358 
+
359  /// GLOBAL to RANGE rename visitor
+
360  if (nmodl_global_to_range) {
+
361  // make sure to run perf visitor because code generator
+
362  // looks for read/write counts const/non-const declaration
+
363  PerfVisitor().visit_program(*ast);
+
364  // make sure to run the GlobalToRange visitor after all the
+
365  // reinitializations of Symtab
+
366  logger->info("Running GlobalToRange visitor");
+
367  GlobalToRangeVisitor(*ast).visit_program(*ast);
+
368  SymtabVisitor(update_symtab).visit_program(*ast);
+
369  ast_to_nmodl(*ast, filepath("global_to_range"));
+
370  }
+
371 
+
372  /// LOCAL to ASSIGNED visitor
+
373  if (nmodl_local_to_range) {
+
374  logger->info("Running LOCAL to ASSIGNED visitor");
+
375  PerfVisitor().visit_program(*ast);
+
376  LocalToAssignedVisitor().visit_program(*ast);
+
377  SymtabVisitor(update_symtab).visit_program(*ast);
+
378  ast_to_nmodl(*ast, filepath("local_to_assigned"));
+
379  }
+
380 
+
381  {
+
382  // Compatibility Checking
+
383  logger->info("Running code compatibility checker");
+
384  // run perfvisitor to update read/write counts
+
385  PerfVisitor().visit_program(*ast);
+
386 
+
387  auto compatibility_visitor = CodegenCompatibilityVisitor(simulator_name);
+
388  // If we want to just check compatibility we return the result
+
389  if (only_check_compatibility) {
+
390  return compatibility_visitor.find_unhandled_ast_nodes(*ast);
+
391  }
+
392 
+
393  // If there is an incompatible construct and code generation is not forced exit NMODL
+
394  if (compatibility_visitor.find_unhandled_ast_nodes(*ast) && !force_codegen) {
+
395  return 1;
+
396  }
+
397  }
+
398 
+
399  if (show_symtab) {
+
400  logger->info("Printing symbol table");
+
401  auto symtab = ast->get_model_symbol_table();
+
402  symtab->print(std::cout);
+
403  }
+
404 
+
405  ast_to_nmodl(*ast, filepath("ast"));
+
406 
+
407  if (json_ast) {
+
408  std::filesystem::path file{scratch_dir};
+
409  file /= modfile + ".ast.json";
+
410  logger->info("Writing AST into {}", file.string());
+
411  JSONVisitor(file.string()).write(*ast);
+
412  }
+
413 
+
414  if (verbatim_rename) {
+
415  logger->info("Running verbatim rename visitor");
+
416  VerbatimVarRenameVisitor().visit_program(*ast);
+
417  ast_to_nmodl(*ast, filepath("verbatim_rename"));
+
418  }
+
419 
+
420  if (nmodl_const_folding) {
+
421  logger->info("Running nmodl constant folding visitor");
+
422  ConstantFolderVisitor().visit_program(*ast);
+
423  ast_to_nmodl(*ast, filepath("constfold"));
+
424  }
+
425 
+
426  if (nmodl_unroll) {
+
427  logger->info("Running nmodl loop unroll visitor");
+
428  LoopUnrollVisitor().visit_program(*ast);
+
429  ConstantFolderVisitor().visit_program(*ast);
+
430  ast_to_nmodl(*ast, filepath("unroll"));
+
431  SymtabVisitor(update_symtab).visit_program(*ast);
+
432  }
+
433 
+
434  /// note that we can not symtab visitor in update mode as we
+
435  /// replace kinetic block with derivative block of same name
+
436  /// in global scope
+
437  {
+
438  logger->info("Running KINETIC block visitor");
+
439  auto kineticBlockVisitor = KineticBlockVisitor();
+
440  kineticBlockVisitor.visit_program(*ast);
+
441  SymtabVisitor(update_symtab).visit_program(*ast);
+
442  const auto filename = filepath("kinetic");
+
443  ast_to_nmodl(*ast, filename);
+
444  if (nmodl_ast && kineticBlockVisitor.get_conserve_statement_count()) {
+
445  logger->warn(
+
446  fmt::format("{} presents non-standard CONSERVE statements in DERIVATIVE "
+
447  "blocks. Use it only for debugging/developing",
+
448  filename));
+
449  }
+
450  }
+
451 
+
452  {
+
453  logger->info("Running STEADYSTATE visitor");
+
454  SteadystateVisitor().visit_program(*ast);
+
455  SymtabVisitor(update_symtab).visit_program(*ast);
+
456  ast_to_nmodl(*ast, filepath("steadystate"));
+
457  }
+
458 
+
459  /// Parsing units fron "nrnunits.lib" and mod files
+
460  {
+
461  logger->info("Parsing Units");
+
462  UnitsVisitor(units_dir).visit_program(*ast);
+
463  }
+
464 
+
465  /// once we start modifying (especially removing) older constructs
+
466  /// from ast then we should run symtab visitor in update mode so
+
467  /// that old symbols (e.g. prime variables) are not lost
+
468  update_symtab = true;
+
469 
+
470  if (nmodl_inline) {
+
471  logger->info("Running nmodl inline visitor");
+
472  InlineVisitor().visit_program(*ast);
+
473  SymtabVisitor(update_symtab).visit_program(*ast);
+
474  ast_to_nmodl(*ast, filepath("inline"));
+
475  }
+
476 
+
477  if (local_rename) {
+
478  logger->info("Running local variable rename visitor");
+
479  LocalVarRenameVisitor().visit_program(*ast);
+
480  SymtabVisitor(update_symtab).visit_program(*ast);
+
481  ast_to_nmodl(*ast, filepath("local_rename"));
+
482  }
+
483 
+
484  if (nmodl_localize) {
+
485  // localize pass must follow rename pass to avoid conflict
+
486  logger->info("Running localize visitor");
+
487  LocalizeVisitor(localize_verbatim).visit_program(*ast);
+
488  LocalVarRenameVisitor().visit_program(*ast);
+
489  SymtabVisitor(update_symtab).visit_program(*ast);
+
490  ast_to_nmodl(*ast, filepath("localize"));
+
491  }
+
492 
+
493  const bool sympy_derivimplicit = neuron_code && solver_exists(*ast, "derivimplicit");
+
494  const bool sympy_linear = node_exists(*ast, ast::AstNodeType::LINEAR_BLOCK);
+
495  const bool sympy_sparse = solver_exists(*ast, "sparse");
+
496 
+
497  if (sympy_conductance || sympy_analytic || sympy_sparse || sympy_derivimplicit ||
+
498  sympy_linear) {
+ +
500  .api()
+ +
502  if (sympy_conductance) {
+
503  logger->info("Running sympy conductance visitor");
+
504  SympyConductanceVisitor().visit_program(*ast);
+
505  SymtabVisitor(update_symtab).visit_program(*ast);
+
506  ast_to_nmodl(*ast, filepath("sympy_conductance"));
+
507  }
+
508 
+
509  if (sympy_analytic || sympy_sparse || sympy_derivimplicit || sympy_linear) {
+
510  if (!sympy_analytic) {
+
511  logger->info("Automatically enabling sympy_analytic.");
+
512  if (sympy_sparse) {
+
513  logger->info("Required by 'SOLVE ... METHOD sparse'.");
+
514  }
+
515 
+
516  if (sympy_derivimplicit) {
+
517  logger->info("Required by 'SOLVE ... METHOD derivimplicit'.");
+
518  }
+
519 
+
520  if (sympy_linear) {
+
521  logger->info("Required by 'LINEAR' block.");
+
522  }
+
523  }
+
524  logger->info("Running sympy solve visitor");
+
525  SympySolverVisitor(sympy_pade, sympy_cse).visit_program(*ast);
+
526  SymtabVisitor(update_symtab).visit_program(*ast);
+
527  ast_to_nmodl(*ast, filepath("sympy_solve"));
+
528  }
+ +
530  .api()
+ +
532  }
+
533 
+
534  {
+
535  logger->info("Running cnexp visitor");
+
536  NeuronSolveVisitor().visit_program(*ast);
+
537  ast_to_nmodl(*ast, filepath("cnexp"));
+
538  }
+
539 
+
540  {
+
541  SolveBlockVisitor().visit_program(*ast);
+
542  SymtabVisitor(update_symtab).visit_program(*ast);
+
543  ast_to_nmodl(*ast, filepath("solveblock"));
+
544  }
+
545 
+
546  if (json_perfstat) {
+
547  std::string file{scratch_dir};
+
548  file.append("/");
+
549  file.append(modfile);
+
550  file.append(".perf.json");
+
551  logger->info("Writing performance statistics to {}", file);
+
552  PerfVisitor(file).visit_program(*ast);
+
553  }
+
554 
+
555  // Add implicit arguments (like celsius, nt) to NEURON functions (like
+
556  // nrn_ghk, at_time) whose signatures we have to massage.
+
557  ImplicitArgumentVisitor{simulator_name}.visit_program(*ast);
+
558  SymtabVisitor(update_symtab).visit_program(*ast);
+
559 
+
560  {
+
561  // make sure to run perf visitor because code generator
+
562  // looks for read/write counts const/non-const declaration
+
563  PerfVisitor().visit_program(*ast);
+
564  }
+
565 
+
566  {
+ +
568  ast_to_nmodl(*ast, filepath("TransformVisitor"));
+
569  SymtabVisitor(update_symtab).visit_program(*ast);
+
570  }
+
571 
+
572  {
+
573  FunctionCallpathVisitor{}.visit_program(*ast);
+
574  ast_to_nmodl(*ast, filepath("FunctionCallpathVisitor"));
+
575  SymtabVisitor(update_symtab).visit_program(*ast);
+
576  }
+
577 
+
578  {
+
579  auto blame_level = detailed_blame ? utils::BlameLevel::Detailed
+ +
581  if (coreneuron_code && oacc_backend) {
+
582  logger->info("Running OpenACC backend code generator for CoreNEURON");
+
583  CodegenAccVisitor visitor(modfile,
+
584  output_dir,
+
585  data_type,
+
586  optimize_ionvar_copies_codegen,
+
587  utils::make_blame(blame_line, blame_level));
+
588  visitor.visit_program(*ast);
+
589  }
+
590 
+
591  else if (coreneuron_code && !neuron_code && cpp_backend) {
+
592  logger->info("Running C++ backend code generator for CoreNEURON");
+
593  CodegenCoreneuronCppVisitor visitor(modfile,
+
594  output_dir,
+
595  data_type,
+
596  optimize_ionvar_copies_codegen,
+
597  utils::make_blame(blame_line, blame_level));
+
598  visitor.visit_program(*ast);
+
599  }
+
600 
+
601  else if (neuron_code && cpp_backend) {
+
602  logger->info("Running C++ backend code generator for NEURON");
+
603  CodegenNeuronCppVisitor visitor(modfile,
+
604  output_dir,
+
605  data_type,
+
606  optimize_ionvar_copies_codegen,
+
607  utils::make_blame(blame_line, blame_level));
+
608  visitor.visit_program(*ast);
+
609  }
+
610 
+
611  else {
+
612  throw std::runtime_error(
+
613  "Non valid code generation configuration. Code generation with NMODL is "
+
614  "supported for NEURON with C++ backend or CoreNEURON with C++/OpenACC "
+
615  "backends");
+
616  }
+
617  }
+
618  }
+
619  return EXIT_SUCCESS;
+
620 }
+
621 
+
622 int main(int argc, const char* argv[]) {
+
623  try {
+
624  return run_nmodl(argc, argv);
+
625  } catch (const std::runtime_error& e) {
+
626  std::cerr << "[FATAL] NMODL encountered an unhandled exception.\n";
+
627  std::cerr << " cwd = " << std::filesystem::current_path() << "\n";
+
628  std::cerr << " ";
+
629  for (int i = 0; i < argc; ++i) {
+
630  std::cerr << argv[i] << " ";
+
631  }
+
632  std::cerr << std::endl;
+
633 
+
634  throw e;
+
635  }
636 
-
637  throw e;
-
638  }
-
639 
-
640  return EXIT_SUCCESS;
-
641 }
+
637  return EXIT_SUCCESS;
+
638 }
symtab::ModelSymbolTable * get_model_symbol_table()
Return global symbol table for the mod file.
Definition: program.hpp:159
@@ -797,7 +794,7 @@
Represents top level AST node for whole NMODL input.
Definition: program.hpp:39
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
-
int main(int argc, const char *argv[])
Definition: main.cpp:625
+
int main(int argc, const char *argv[])
Definition: main.cpp:622
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
static std::string get_path()
Return path of units database file.
Definition: config.h:54
bool parse_file(const std::string &filename)
parse Units file
Definition: unit_driver.cpp:29
diff --git a/doxygen/src_2visitors_2main_8cpp_source.html b/doxygen/src_2visitors_2main_8cpp_source.html index 45483630c..d6abf3ae1 100644 --- a/doxygen/src_2visitors_2main_8cpp_source.html +++ b/doxygen/src_2visitors_2main_8cpp_source.html @@ -262,7 +262,7 @@
Version information and units file path.
Represents top level AST node for whole NMODL input.
Definition: program.hpp:39
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
-
int main(int argc, const char *argv[])
Definition: main.cpp:625
+
int main(int argc, const char *argv[])
Definition: main.cpp:622
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
static std::string get_path()
Return path of units database file.
Definition: config.h:54
bool parse_file(const std::string &filename)
parse Units file
Definition: unit_driver.cpp:29
diff --git a/doxygen/test_2unit_2codegen_2main_8cpp_source.html b/doxygen/test_2unit_2codegen_2main_8cpp_source.html index e669f16e5..36f667584 100644 --- a/doxygen/test_2unit_2codegen_2main_8cpp_source.html +++ b/doxygen/test_2unit_2codegen_2main_8cpp_source.html @@ -128,7 +128,7 @@
decltype(&finalize_interpreter_func) finalize_interpreter
Definition: wrapper.hpp:49
const pybind_wrap_api & api()
Get a pointer to the pybind_wrap_api struct.
Definition: pyembed.cpp:135
Implement logger based on spdlog library.
-
int main(int argc, const char *argv[])
Definition: main.cpp:625
+
int main(int argc, const char *argv[])
Definition: main.cpp:622
diff --git a/doxygen/test_2unit_2visitor_2main_8cpp_source.html b/doxygen/test_2unit_2visitor_2main_8cpp_source.html index 436e6f6ed..0721d6684 100644 --- a/doxygen/test_2unit_2visitor_2main_8cpp_source.html +++ b/doxygen/test_2unit_2visitor_2main_8cpp_source.html @@ -128,7 +128,7 @@
decltype(&finalize_interpreter_func) finalize_interpreter
Definition: wrapper.hpp:49
const pybind_wrap_api & api()
Get a pointer to the pybind_wrap_api struct.
Definition: pyembed.cpp:135
Implement logger based on spdlog library.
-
int main(int argc, const char *argv[])
Definition: main.cpp:625
+
int main(int argc, const char *argv[])
Definition: main.cpp:622
diff --git a/notebooks/nmodl-kinetic-schemes.ipynb b/notebooks/nmodl-kinetic-schemes.ipynb index 7145a3a67..7965e3257 100644 --- a/notebooks/nmodl-kinetic-schemes.ipynb +++ b/notebooks/nmodl-kinetic-schemes.ipynb @@ -152,10 +152,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:37.874229Z", - "iopub.status.busy": "2024-10-03T12:10:37.874037Z", - "iopub.status.idle": "2024-10-03T12:10:38.672948Z", - "shell.execute_reply": "2024-10-03T12:10:38.672048Z" + "iopub.execute_input": "2024-10-03T12:53:30.783426Z", + "iopub.status.busy": "2024-10-03T12:53:30.782953Z", + "iopub.status.idle": "2024-10-03T12:53:31.572588Z", + "shell.execute_reply": "2024-10-03T12:53:31.571844Z" } }, "outputs": [], @@ -169,10 +169,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.675507Z", - "iopub.status.busy": "2024-10-03T12:10:38.675296Z", - "iopub.status.idle": "2024-10-03T12:10:38.705683Z", - "shell.execute_reply": "2024-10-03T12:10:38.705014Z" + "iopub.execute_input": "2024-10-03T12:53:31.575177Z", + "iopub.status.busy": "2024-10-03T12:53:31.574962Z", + "iopub.status.idle": "2024-10-03T12:53:31.605820Z", + "shell.execute_reply": "2024-10-03T12:53:31.605215Z" } }, "outputs": [], @@ -277,10 +277,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.708080Z", - "iopub.status.busy": "2024-10-03T12:10:38.707677Z", - "iopub.status.idle": "2024-10-03T12:10:38.712483Z", - "shell.execute_reply": "2024-10-03T12:10:38.711828Z" + "iopub.execute_input": "2024-10-03T12:53:31.608118Z", + "iopub.status.busy": "2024-10-03T12:53:31.607714Z", + "iopub.status.idle": "2024-10-03T12:53:31.612301Z", + "shell.execute_reply": "2024-10-03T12:53:31.611686Z" } }, "outputs": [ @@ -323,10 +323,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.741994Z", - "iopub.status.busy": "2024-10-03T12:10:38.741603Z", - "iopub.status.idle": "2024-10-03T12:10:38.745634Z", - "shell.execute_reply": "2024-10-03T12:10:38.744987Z" + "iopub.execute_input": "2024-10-03T12:53:31.642481Z", + "iopub.status.busy": "2024-10-03T12:53:31.642036Z", + "iopub.status.idle": "2024-10-03T12:53:31.645765Z", + "shell.execute_reply": "2024-10-03T12:53:31.645211Z" } }, "outputs": [ @@ -367,10 +367,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.747637Z", - "iopub.status.busy": "2024-10-03T12:10:38.747263Z", - "iopub.status.idle": "2024-10-03T12:10:38.751127Z", - "shell.execute_reply": "2024-10-03T12:10:38.750495Z" + "iopub.execute_input": "2024-10-03T12:53:31.647932Z", + "iopub.status.busy": "2024-10-03T12:53:31.647561Z", + "iopub.status.idle": "2024-10-03T12:53:31.650957Z", + "shell.execute_reply": "2024-10-03T12:53:31.650394Z" }, "scrolled": true }, @@ -412,10 +412,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.753263Z", - "iopub.status.busy": "2024-10-03T12:10:38.752889Z", - "iopub.status.idle": "2024-10-03T12:10:38.756894Z", - "shell.execute_reply": "2024-10-03T12:10:38.756227Z" + "iopub.execute_input": "2024-10-03T12:53:31.653025Z", + "iopub.status.busy": "2024-10-03T12:53:31.652662Z", + "iopub.status.idle": "2024-10-03T12:53:31.656131Z", + "shell.execute_reply": "2024-10-03T12:53:31.655600Z" }, "scrolled": true }, @@ -459,10 +459,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:38.758884Z", - "iopub.status.busy": "2024-10-03T12:10:38.758643Z", - "iopub.status.idle": "2024-10-03T12:10:38.763451Z", - "shell.execute_reply": "2024-10-03T12:10:38.762794Z" + "iopub.execute_input": "2024-10-03T12:53:31.658264Z", + "iopub.status.busy": "2024-10-03T12:53:31.657807Z", + "iopub.status.idle": "2024-10-03T12:53:31.662075Z", + "shell.execute_reply": "2024-10-03T12:53:31.661524Z" } }, "outputs": [ diff --git a/notebooks/nmodl-python-tutorial.ipynb b/notebooks/nmodl-python-tutorial.ipynb index 9b4f8a732..c604c26d2 100644 --- a/notebooks/nmodl-python-tutorial.ipynb +++ b/notebooks/nmodl-python-tutorial.ipynb @@ -30,10 +30,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:43.871758Z", - "iopub.status.busy": "2024-10-03T12:10:43.871286Z", - "iopub.status.idle": "2024-10-03T12:10:44.673624Z", - "shell.execute_reply": "2024-10-03T12:10:44.672789Z" + "iopub.execute_input": "2024-10-03T12:53:37.035835Z", + "iopub.status.busy": "2024-10-03T12:53:37.035286Z", + "iopub.status.idle": "2024-10-03T12:53:37.829087Z", + "shell.execute_reply": "2024-10-03T12:53:37.828309Z" } }, "outputs": [], @@ -63,10 +63,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.676305Z", - "iopub.status.busy": "2024-10-03T12:10:44.675876Z", - "iopub.status.idle": "2024-10-03T12:10:44.704620Z", - "shell.execute_reply": "2024-10-03T12:10:44.703969Z" + "iopub.execute_input": "2024-10-03T12:53:37.831896Z", + "iopub.status.busy": "2024-10-03T12:53:37.831469Z", + "iopub.status.idle": "2024-10-03T12:53:37.860553Z", + "shell.execute_reply": "2024-10-03T12:53:37.859808Z" } }, "outputs": [], @@ -86,10 +86,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.707090Z", - "iopub.status.busy": "2024-10-03T12:10:44.706697Z", - "iopub.status.idle": "2024-10-03T12:10:44.710139Z", - "shell.execute_reply": "2024-10-03T12:10:44.709613Z" + "iopub.execute_input": "2024-10-03T12:53:37.863221Z", + "iopub.status.busy": "2024-10-03T12:53:37.862820Z", + "iopub.status.idle": "2024-10-03T12:53:37.866302Z", + "shell.execute_reply": "2024-10-03T12:53:37.865735Z" } }, "outputs": [], @@ -152,10 +152,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.712251Z", - "iopub.status.busy": "2024-10-03T12:10:44.711882Z", - "iopub.status.idle": "2024-10-03T12:10:44.715909Z", - "shell.execute_reply": "2024-10-03T12:10:44.715394Z" + "iopub.execute_input": "2024-10-03T12:53:37.868260Z", + "iopub.status.busy": "2024-10-03T12:53:37.867925Z", + "iopub.status.idle": "2024-10-03T12:53:37.871702Z", + "shell.execute_reply": "2024-10-03T12:53:37.871042Z" } }, "outputs": [], @@ -183,10 +183,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.717990Z", - "iopub.status.busy": "2024-10-03T12:10:44.717644Z", - "iopub.status.idle": "2024-10-03T12:10:44.721336Z", - "shell.execute_reply": "2024-10-03T12:10:44.720654Z" + "iopub.execute_input": "2024-10-03T12:53:37.873885Z", + "iopub.status.busy": "2024-10-03T12:53:37.873511Z", + "iopub.status.idle": "2024-10-03T12:53:37.877093Z", + "shell.execute_reply": "2024-10-03T12:53:37.876479Z" } }, "outputs": [ @@ -235,10 +235,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.723587Z", - "iopub.status.busy": "2024-10-03T12:10:44.723129Z", - "iopub.status.idle": "2024-10-03T12:10:44.727013Z", - "shell.execute_reply": "2024-10-03T12:10:44.726505Z" + "iopub.execute_input": "2024-10-03T12:53:37.879163Z", + "iopub.status.busy": "2024-10-03T12:53:37.878705Z", + "iopub.status.idle": "2024-10-03T12:53:37.882649Z", + "shell.execute_reply": "2024-10-03T12:53:37.882015Z" } }, "outputs": [], @@ -260,10 +260,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.729077Z", - "iopub.status.busy": "2024-10-03T12:10:44.728712Z", - "iopub.status.idle": "2024-10-03T12:10:44.732552Z", - "shell.execute_reply": "2024-10-03T12:10:44.731998Z" + "iopub.execute_input": "2024-10-03T12:53:37.884884Z", + "iopub.status.busy": "2024-10-03T12:53:37.884427Z", + "iopub.status.idle": "2024-10-03T12:53:37.888122Z", + "shell.execute_reply": "2024-10-03T12:53:37.887473Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.734535Z", - "iopub.status.busy": "2024-10-03T12:10:44.734176Z", - "iopub.status.idle": "2024-10-03T12:10:44.741725Z", - "shell.execute_reply": "2024-10-03T12:10:44.741116Z" + "iopub.execute_input": "2024-10-03T12:53:37.890127Z", + "iopub.status.busy": "2024-10-03T12:53:37.889774Z", + "iopub.status.idle": "2024-10-03T12:53:37.896685Z", + "shell.execute_reply": "2024-10-03T12:53:37.896141Z" } }, "outputs": [ @@ -365,10 +365,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.743523Z", - "iopub.status.busy": "2024-10-03T12:10:44.743328Z", - "iopub.status.idle": "2024-10-03T12:10:44.747881Z", - "shell.execute_reply": "2024-10-03T12:10:44.747336Z" + "iopub.execute_input": "2024-10-03T12:53:37.898764Z", + "iopub.status.busy": "2024-10-03T12:53:37.898388Z", + "iopub.status.idle": "2024-10-03T12:53:37.902560Z", + "shell.execute_reply": "2024-10-03T12:53:37.901902Z" } }, "outputs": [ @@ -416,10 +416,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.750010Z", - "iopub.status.busy": "2024-10-03T12:10:44.749541Z", - "iopub.status.idle": "2024-10-03T12:10:44.752778Z", - "shell.execute_reply": "2024-10-03T12:10:44.752254Z" + "iopub.execute_input": "2024-10-03T12:53:37.904619Z", + "iopub.status.busy": "2024-10-03T12:53:37.904246Z", + "iopub.status.idle": "2024-10-03T12:53:37.907501Z", + "shell.execute_reply": "2024-10-03T12:53:37.906984Z" } }, "outputs": [], @@ -441,10 +441,10 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.754696Z", - "iopub.status.busy": "2024-10-03T12:10:44.754490Z", - "iopub.status.idle": "2024-10-03T12:10:44.758318Z", - "shell.execute_reply": "2024-10-03T12:10:44.757678Z" + "iopub.execute_input": "2024-10-03T12:53:37.909562Z", + "iopub.status.busy": "2024-10-03T12:53:37.909265Z", + "iopub.status.idle": "2024-10-03T12:53:37.912822Z", + "shell.execute_reply": "2024-10-03T12:53:37.912297Z" } }, "outputs": [ @@ -510,10 +510,10 @@ "execution_count": 12, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.760294Z", - "iopub.status.busy": "2024-10-03T12:10:44.759921Z", - "iopub.status.idle": "2024-10-03T12:10:44.763093Z", - "shell.execute_reply": "2024-10-03T12:10:44.762563Z" + "iopub.execute_input": "2024-10-03T12:53:37.914881Z", + "iopub.status.busy": "2024-10-03T12:53:37.914499Z", + "iopub.status.idle": "2024-10-03T12:53:37.917949Z", + "shell.execute_reply": "2024-10-03T12:53:37.917382Z" } }, "outputs": [ @@ -548,10 +548,10 @@ "execution_count": 13, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.765054Z", - "iopub.status.busy": "2024-10-03T12:10:44.764711Z", - "iopub.status.idle": "2024-10-03T12:10:44.768079Z", - "shell.execute_reply": "2024-10-03T12:10:44.767535Z" + "iopub.execute_input": "2024-10-03T12:53:37.920100Z", + "iopub.status.busy": "2024-10-03T12:53:37.919730Z", + "iopub.status.idle": "2024-10-03T12:53:37.922960Z", + "shell.execute_reply": "2024-10-03T12:53:37.922370Z" } }, "outputs": [ @@ -584,10 +584,10 @@ "execution_count": 14, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.770162Z", - "iopub.status.busy": "2024-10-03T12:10:44.769780Z", - "iopub.status.idle": "2024-10-03T12:10:44.773170Z", - "shell.execute_reply": "2024-10-03T12:10:44.772643Z" + "iopub.execute_input": "2024-10-03T12:53:37.925054Z", + "iopub.status.busy": "2024-10-03T12:53:37.924683Z", + "iopub.status.idle": "2024-10-03T12:53:37.928069Z", + "shell.execute_reply": "2024-10-03T12:53:37.927540Z" } }, "outputs": [ @@ -622,10 +622,10 @@ "execution_count": 15, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.775293Z", - "iopub.status.busy": "2024-10-03T12:10:44.774919Z", - "iopub.status.idle": "2024-10-03T12:10:44.778777Z", - "shell.execute_reply": "2024-10-03T12:10:44.778239Z" + "iopub.execute_input": "2024-10-03T12:53:37.930066Z", + "iopub.status.busy": "2024-10-03T12:53:37.929689Z", + "iopub.status.idle": "2024-10-03T12:53:37.933528Z", + "shell.execute_reply": "2024-10-03T12:53:37.932976Z" } }, "outputs": [ @@ -669,10 +669,10 @@ "execution_count": 16, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.780924Z", - "iopub.status.busy": "2024-10-03T12:10:44.780536Z", - "iopub.status.idle": "2024-10-03T12:10:44.785749Z", - "shell.execute_reply": "2024-10-03T12:10:44.785154Z" + "iopub.execute_input": "2024-10-03T12:53:37.935625Z", + "iopub.status.busy": "2024-10-03T12:53:37.935258Z", + "iopub.status.idle": "2024-10-03T12:53:37.940431Z", + "shell.execute_reply": "2024-10-03T12:53:37.939897Z" } }, "outputs": [ @@ -733,10 +733,10 @@ "execution_count": 17, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.787767Z", - "iopub.status.busy": "2024-10-03T12:10:44.787389Z", - "iopub.status.idle": "2024-10-03T12:10:44.790841Z", - "shell.execute_reply": "2024-10-03T12:10:44.790300Z" + "iopub.execute_input": "2024-10-03T12:53:37.942482Z", + "iopub.status.busy": "2024-10-03T12:53:37.942107Z", + "iopub.status.idle": "2024-10-03T12:53:37.945488Z", + "shell.execute_reply": "2024-10-03T12:53:37.944964Z" } }, "outputs": [], @@ -761,10 +761,10 @@ "execution_count": 18, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.792914Z", - "iopub.status.busy": "2024-10-03T12:10:44.792545Z", - "iopub.status.idle": "2024-10-03T12:10:44.802665Z", - "shell.execute_reply": "2024-10-03T12:10:44.802085Z" + "iopub.execute_input": "2024-10-03T12:53:37.947538Z", + "iopub.status.busy": "2024-10-03T12:53:37.947168Z", + "iopub.status.idle": "2024-10-03T12:53:37.957213Z", + "shell.execute_reply": "2024-10-03T12:53:37.956695Z" } }, "outputs": [], @@ -857,10 +857,10 @@ "execution_count": 19, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.804670Z", - "iopub.status.busy": "2024-10-03T12:10:44.804347Z", - "iopub.status.idle": "2024-10-03T12:10:44.808027Z", - "shell.execute_reply": "2024-10-03T12:10:44.807387Z" + "iopub.execute_input": "2024-10-03T12:53:37.959186Z", + "iopub.status.busy": "2024-10-03T12:53:37.958807Z", + "iopub.status.idle": "2024-10-03T12:53:37.962481Z", + "shell.execute_reply": "2024-10-03T12:53:37.961921Z" } }, "outputs": [ @@ -897,10 +897,10 @@ "execution_count": 20, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:44.810031Z", - "iopub.status.busy": "2024-10-03T12:10:44.809693Z", - "iopub.status.idle": "2024-10-03T12:10:44.815454Z", - "shell.execute_reply": "2024-10-03T12:10:44.814889Z" + "iopub.execute_input": "2024-10-03T12:53:37.964517Z", + "iopub.status.busy": "2024-10-03T12:53:37.964144Z", + "iopub.status.idle": "2024-10-03T12:53:37.969722Z", + "shell.execute_reply": "2024-10-03T12:53:37.969168Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-conductance.ipynb b/notebooks/nmodl-sympy-conductance.ipynb index 73bd917a5..a08e97bd2 100644 --- a/notebooks/nmodl-sympy-conductance.ipynb +++ b/notebooks/nmodl-sympy-conductance.ipynb @@ -86,10 +86,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:47.208422Z", - "iopub.status.busy": "2024-10-03T12:10:47.208234Z", - "iopub.status.idle": "2024-10-03T12:10:48.015451Z", - "shell.execute_reply": "2024-10-03T12:10:48.014551Z" + "iopub.execute_input": "2024-10-03T12:53:40.246245Z", + "iopub.status.busy": "2024-10-03T12:53:40.246043Z", + "iopub.status.idle": "2024-10-03T12:53:41.039561Z", + "shell.execute_reply": "2024-10-03T12:53:41.038749Z" } }, "outputs": [], @@ -103,10 +103,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.017970Z", - "iopub.status.busy": "2024-10-03T12:10:48.017753Z", - "iopub.status.idle": "2024-10-03T12:10:48.049158Z", - "shell.execute_reply": "2024-10-03T12:10:48.048387Z" + "iopub.execute_input": "2024-10-03T12:53:41.042228Z", + "iopub.status.busy": "2024-10-03T12:53:41.041772Z", + "iopub.status.idle": "2024-10-03T12:53:41.071790Z", + "shell.execute_reply": "2024-10-03T12:53:41.071070Z" } }, "outputs": [], @@ -149,10 +149,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.051647Z", - "iopub.status.busy": "2024-10-03T12:10:48.051392Z", - "iopub.status.idle": "2024-10-03T12:10:48.328469Z", - "shell.execute_reply": "2024-10-03T12:10:48.327705Z" + "iopub.execute_input": "2024-10-03T12:53:41.074355Z", + "iopub.status.busy": "2024-10-03T12:53:41.073856Z", + "iopub.status.idle": "2024-10-03T12:53:41.366199Z", + "shell.execute_reply": "2024-10-03T12:53:41.365502Z" } }, "outputs": [ @@ -196,10 +196,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.330837Z", - "iopub.status.busy": "2024-10-03T12:10:48.330318Z", - "iopub.status.idle": "2024-10-03T12:10:48.464220Z", - "shell.execute_reply": "2024-10-03T12:10:48.463540Z" + "iopub.execute_input": "2024-10-03T12:53:41.368585Z", + "iopub.status.busy": "2024-10-03T12:53:41.368155Z", + "iopub.status.idle": "2024-10-03T12:53:41.497314Z", + "shell.execute_reply": "2024-10-03T12:53:41.496681Z" } }, "outputs": [ @@ -243,10 +243,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.466507Z", - "iopub.status.busy": "2024-10-03T12:10:48.466033Z", - "iopub.status.idle": "2024-10-03T12:10:48.473983Z", - "shell.execute_reply": "2024-10-03T12:10:48.473409Z" + "iopub.execute_input": "2024-10-03T12:53:41.499956Z", + "iopub.status.busy": "2024-10-03T12:53:41.499389Z", + "iopub.status.idle": "2024-10-03T12:53:41.507549Z", + "shell.execute_reply": "2024-10-03T12:53:41.507006Z" } }, "outputs": [ @@ -290,10 +290,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.475797Z", - "iopub.status.busy": "2024-10-03T12:10:48.475601Z", - "iopub.status.idle": "2024-10-03T12:10:48.493262Z", - "shell.execute_reply": "2024-10-03T12:10:48.492590Z" + "iopub.execute_input": "2024-10-03T12:53:41.509388Z", + "iopub.status.busy": "2024-10-03T12:53:41.509191Z", + "iopub.status.idle": "2024-10-03T12:53:41.526364Z", + "shell.execute_reply": "2024-10-03T12:53:41.525804Z" } }, "outputs": [ @@ -337,10 +337,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.495519Z", - "iopub.status.busy": "2024-10-03T12:10:48.495130Z", - "iopub.status.idle": "2024-10-03T12:10:48.613387Z", - "shell.execute_reply": "2024-10-03T12:10:48.612725Z" + "iopub.execute_input": "2024-10-03T12:53:41.528334Z", + "iopub.status.busy": "2024-10-03T12:53:41.528134Z", + "iopub.status.idle": "2024-10-03T12:53:41.646554Z", + "shell.execute_reply": "2024-10-03T12:53:41.645978Z" } }, "outputs": [ @@ -400,10 +400,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.615536Z", - "iopub.status.busy": "2024-10-03T12:10:48.615132Z", - "iopub.status.idle": "2024-10-03T12:10:48.708041Z", - "shell.execute_reply": "2024-10-03T12:10:48.707403Z" + "iopub.execute_input": "2024-10-03T12:53:41.648442Z", + "iopub.status.busy": "2024-10-03T12:53:41.648249Z", + "iopub.status.idle": "2024-10-03T12:53:41.741537Z", + "shell.execute_reply": "2024-10-03T12:53:41.740969Z" } }, "outputs": [ @@ -456,10 +456,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:48.710205Z", - "iopub.status.busy": "2024-10-03T12:10:48.709808Z", - "iopub.status.idle": "2024-10-03T12:10:48.781793Z", - "shell.execute_reply": "2024-10-03T12:10:48.781134Z" + "iopub.execute_input": "2024-10-03T12:53:41.743421Z", + "iopub.status.busy": "2024-10-03T12:53:41.743226Z", + "iopub.status.idle": "2024-10-03T12:53:41.817242Z", + "shell.execute_reply": "2024-10-03T12:53:41.816596Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-solver-cnexp.ipynb b/notebooks/nmodl-sympy-solver-cnexp.ipynb index e96b3f73c..2f81dcc33 100644 --- a/notebooks/nmodl-sympy-solver-cnexp.ipynb +++ b/notebooks/nmodl-sympy-solver-cnexp.ipynb @@ -62,10 +62,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:50.684184Z", - "iopub.status.busy": "2024-10-03T12:10:50.683982Z", - "iopub.status.idle": "2024-10-03T12:10:51.470570Z", - "shell.execute_reply": "2024-10-03T12:10:51.469765Z" + "iopub.execute_input": "2024-10-03T12:53:43.573943Z", + "iopub.status.busy": "2024-10-03T12:53:43.573742Z", + "iopub.status.idle": "2024-10-03T12:53:44.357679Z", + "shell.execute_reply": "2024-10-03T12:53:44.356869Z" } }, "outputs": [], @@ -79,10 +79,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:51.472942Z", - "iopub.status.busy": "2024-10-03T12:10:51.472717Z", - "iopub.status.idle": "2024-10-03T12:10:51.503703Z", - "shell.execute_reply": "2024-10-03T12:10:51.503060Z" + "iopub.execute_input": "2024-10-03T12:53:44.360155Z", + "iopub.status.busy": "2024-10-03T12:53:44.359887Z", + "iopub.status.idle": "2024-10-03T12:53:44.390525Z", + "shell.execute_reply": "2024-10-03T12:53:44.389779Z" } }, "outputs": [], @@ -123,10 +123,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:51.505921Z", - "iopub.status.busy": "2024-10-03T12:10:51.505596Z", - "iopub.status.idle": "2024-10-03T12:10:51.923469Z", - "shell.execute_reply": "2024-10-03T12:10:51.922780Z" + "iopub.execute_input": "2024-10-03T12:53:44.392893Z", + "iopub.status.busy": "2024-10-03T12:53:44.392379Z", + "iopub.status.idle": "2024-10-03T12:53:44.806243Z", + "shell.execute_reply": "2024-10-03T12:53:44.805540Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:51.925816Z", - "iopub.status.busy": "2024-10-03T12:10:51.925393Z", - "iopub.status.idle": "2024-10-03T12:10:52.037064Z", - "shell.execute_reply": "2024-10-03T12:10:52.036459Z" + "iopub.execute_input": "2024-10-03T12:53:44.808450Z", + "iopub.status.busy": "2024-10-03T12:53:44.808054Z", + "iopub.status.idle": "2024-10-03T12:53:44.918352Z", + "shell.execute_reply": "2024-10-03T12:53:44.917681Z" } }, "outputs": [ @@ -207,10 +207,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:52.039411Z", - "iopub.status.busy": "2024-10-03T12:10:52.039012Z", - "iopub.status.idle": "2024-10-03T12:10:52.237940Z", - "shell.execute_reply": "2024-10-03T12:10:52.237307Z" + "iopub.execute_input": "2024-10-03T12:53:44.920505Z", + "iopub.status.busy": "2024-10-03T12:53:44.920123Z", + "iopub.status.idle": "2024-10-03T12:53:45.119585Z", + "shell.execute_reply": "2024-10-03T12:53:45.119019Z" } }, "outputs": [ @@ -255,10 +255,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:52.240132Z", - "iopub.status.busy": "2024-10-03T12:10:52.239729Z", - "iopub.status.idle": "2024-10-03T12:10:52.399368Z", - "shell.execute_reply": "2024-10-03T12:10:52.398691Z" + "iopub.execute_input": "2024-10-03T12:53:45.121727Z", + "iopub.status.busy": "2024-10-03T12:53:45.121332Z", + "iopub.status.idle": "2024-10-03T12:53:45.279371Z", + "shell.execute_reply": "2024-10-03T12:53:45.278824Z" } }, "outputs": [ @@ -303,10 +303,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:52.401647Z", - "iopub.status.busy": "2024-10-03T12:10:52.401250Z", - "iopub.status.idle": "2024-10-03T12:10:54.134217Z", - "shell.execute_reply": "2024-10-03T12:10:54.133588Z" + "iopub.execute_input": "2024-10-03T12:53:45.281552Z", + "iopub.status.busy": "2024-10-03T12:53:45.281164Z", + "iopub.status.idle": "2024-10-03T12:53:47.019572Z", + "shell.execute_reply": "2024-10-03T12:53:47.018921Z" } }, "outputs": [ @@ -351,10 +351,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:54.136580Z", - "iopub.status.busy": "2024-10-03T12:10:54.136189Z", - "iopub.status.idle": "2024-10-03T12:10:56.358843Z", - "shell.execute_reply": "2024-10-03T12:10:56.358160Z" + "iopub.execute_input": "2024-10-03T12:53:47.021908Z", + "iopub.status.busy": "2024-10-03T12:53:47.021515Z", + "iopub.status.idle": "2024-10-03T12:53:49.225877Z", + "shell.execute_reply": "2024-10-03T12:53:49.225246Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-solver-derivimplicit.ipynb b/notebooks/nmodl-sympy-solver-derivimplicit.ipynb index 0b6073897..78571a3eb 100644 --- a/notebooks/nmodl-sympy-solver-derivimplicit.ipynb +++ b/notebooks/nmodl-sympy-solver-derivimplicit.ipynb @@ -39,10 +39,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:58.062040Z", - "iopub.status.busy": "2024-10-03T12:10:58.061841Z", - "iopub.status.idle": "2024-10-03T12:10:58.857615Z", - "shell.execute_reply": "2024-10-03T12:10:58.856804Z" + "iopub.execute_input": "2024-10-03T12:53:50.936877Z", + "iopub.status.busy": "2024-10-03T12:53:50.936699Z", + "iopub.status.idle": "2024-10-03T12:53:51.725504Z", + "shell.execute_reply": "2024-10-03T12:53:51.724618Z" } }, "outputs": [], @@ -56,10 +56,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:58.860331Z", - "iopub.status.busy": "2024-10-03T12:10:58.859904Z", - "iopub.status.idle": "2024-10-03T12:10:58.890298Z", - "shell.execute_reply": "2024-10-03T12:10:58.889661Z" + "iopub.execute_input": "2024-10-03T12:53:51.728188Z", + "iopub.status.busy": "2024-10-03T12:53:51.727968Z", + "iopub.status.idle": "2024-10-03T12:53:51.758304Z", + "shell.execute_reply": "2024-10-03T12:53:51.757669Z" } }, "outputs": [], @@ -100,10 +100,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:58.892627Z", - "iopub.status.busy": "2024-10-03T12:10:58.892278Z", - "iopub.status.idle": "2024-10-03T12:10:59.378049Z", - "shell.execute_reply": "2024-10-03T12:10:59.377323Z" + "iopub.execute_input": "2024-10-03T12:53:51.760722Z", + "iopub.status.busy": "2024-10-03T12:53:51.760220Z", + "iopub.status.idle": "2024-10-03T12:53:52.247959Z", + "shell.execute_reply": "2024-10-03T12:53:52.247313Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:10:59.380321Z", - "iopub.status.busy": "2024-10-03T12:10:59.379887Z", - "iopub.status.idle": "2024-10-03T12:10:59.676667Z", - "shell.execute_reply": "2024-10-03T12:10:59.676016Z" + "iopub.execute_input": "2024-10-03T12:53:52.250123Z", + "iopub.status.busy": "2024-10-03T12:53:52.249846Z", + "iopub.status.idle": "2024-10-03T12:53:52.549588Z", + "shell.execute_reply": "2024-10-03T12:53:52.548945Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-solver-sparse.ipynb b/notebooks/nmodl-sympy-solver-sparse.ipynb index 4d80d0a95..36a7903cb 100644 --- a/notebooks/nmodl-sympy-solver-sparse.ipynb +++ b/notebooks/nmodl-sympy-solver-sparse.ipynb @@ -39,10 +39,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:11:01.034583Z", - "iopub.status.busy": "2024-10-03T12:11:01.034378Z", - "iopub.status.idle": "2024-10-03T12:11:01.836621Z", - "shell.execute_reply": "2024-10-03T12:11:01.835732Z" + "iopub.execute_input": "2024-10-03T12:53:54.044216Z", + "iopub.status.busy": "2024-10-03T12:53:54.044023Z", + "iopub.status.idle": "2024-10-03T12:53:54.862627Z", + "shell.execute_reply": "2024-10-03T12:53:54.861791Z" } }, "outputs": [], @@ -56,10 +56,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:11:01.839640Z", - "iopub.status.busy": "2024-10-03T12:11:01.839124Z", - "iopub.status.idle": "2024-10-03T12:11:01.869534Z", - "shell.execute_reply": "2024-10-03T12:11:01.868891Z" + "iopub.execute_input": "2024-10-03T12:53:54.865140Z", + "iopub.status.busy": "2024-10-03T12:53:54.864902Z", + "iopub.status.idle": "2024-10-03T12:53:54.897021Z", + "shell.execute_reply": "2024-10-03T12:53:54.896211Z" } }, "outputs": [], @@ -100,10 +100,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:11:01.871726Z", - "iopub.status.busy": "2024-10-03T12:11:01.871396Z", - "iopub.status.idle": "2024-10-03T12:11:02.361982Z", - "shell.execute_reply": "2024-10-03T12:11:02.361299Z" + "iopub.execute_input": "2024-10-03T12:53:54.899659Z", + "iopub.status.busy": "2024-10-03T12:53:54.899396Z", + "iopub.status.idle": "2024-10-03T12:53:55.389147Z", + "shell.execute_reply": "2024-10-03T12:53:55.388441Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-03T12:11:02.364448Z", - "iopub.status.busy": "2024-10-03T12:11:02.363978Z", - "iopub.status.idle": "2024-10-03T12:11:02.659972Z", - "shell.execute_reply": "2024-10-03T12:11:02.659263Z" + "iopub.execute_input": "2024-10-03T12:53:55.391353Z", + "iopub.status.busy": "2024-10-03T12:53:55.391095Z", + "iopub.status.idle": "2024-10-03T12:53:55.686550Z", + "shell.execute_reply": "2024-10-03T12:53:55.685825Z" } }, "outputs": [