diff --git a/CITATION.cff b/CITATION.cff index 0486ac5..b4d0f6c 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -25,13 +25,19 @@ authors: email: "sadie.s.niblett@usace.army.mil" affiliation: "U.S. Army Corps of Engineers, Risk Management Center" orcid: "https://orcid.org/0009-0008-8588-4816" - - family-names: "Gonzalez" - given-names: "Julian" - email: "julian.t.gonzalez@usace.army.mil" - affiliation: "U.S. Army Corps of Engineers, Risk Management Center" - orcid: "https://orcid.org/0009-0009-9058-7653" - family-names: "Smith" given-names: "C. Haden" email: "cole.h.smith@usace.army.mil" affiliation: "U.S. Army Corps of Engineers, Risk Management Center" orcid: "https://orcid.org/0000-0002-4651-9890" +reviewers: + - family-names: "McGraw" + given-names: "Dan" + email: "daniel.e.mcgraw@usace.army.mil" + affiliation: "U.S. Army Corps of Engineers, Risk Management Center" + orcid: "https://orcid.org/0009-0006-4859-0179" + - family-names: "Gonzalez" + given-names: "Julian" + email: "julian.t.gonzalez@usace.army.mil" + affiliation: "U.S. Army Corps of Engineers, Risk Management Center" + orcid: "https://orcid.org/0009-0009-9058-7653" \ No newline at end of file diff --git a/notebooks/00_getting_started.ipynb b/notebooks/00_getting_started.ipynb index 017d664..e2f818e 100644 --- a/notebooks/00_getting_started.ipynb +++ b/notebooks/00_getting_started.ipynb @@ -62,7 +62,7 @@ "5. Now you should be able to select this virtual environment as a kernel. Click on the **\"Select Kernel\"** in the top right. Chose Python environments and select Python(.venv), the one you just created! If it doesn't show up right away, try reloading your window.\n", "6. Open the command palette (Ctrl+Shift+P or Cmd+Shift+P) and find **\"Python:Select Interpreter\"**. Chose the .venv option to tell VS code to always use this interpreter going forward.\n", "\n", - "Now we have ensured that we can use and run Python in there Jupyter notebooks. Time to get down to business in Numerics!\n", + "Now we have ensured that we can use and run Python in these Jupyter notebooks. Time to get down to business in Numerics!\n", "\n", "## What is Numerics?\n", "Numerics is a comprehensive .NET library for numerical computing and statistical analysis, developed by the U.S. Army Corps of Engineers Risk Management Center [[1]](#1). It includes:\n", @@ -220,7 +220,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "65dc539a", "metadata": { "execution": { @@ -230,7 +230,19 @@ "shell.execute_reply": "2026-04-23T18:41:58.462306Z" } }, - "outputs": [], + "outputs": [ + { + "ename": "FileNotFoundException", + "evalue": "Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mFileNotFoundException\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 5\u001b[39m\n\u001b[32m 2\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mhelper_functions\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m resolve_numerics_dll\n\u001b[32m 4\u001b[39m dll_path = resolve_numerics_dll()\n\u001b[32m----> \u001b[39m\u001b[32m5\u001b[39m \u001b[43mclr\u001b[49m\u001b[43m.\u001b[49m\u001b[43mAddReference\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mdll_path\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 7\u001b[39m \u001b[38;5;28mprint\u001b[39m(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33m✓ Loaded Numerics from: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mdll_path\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m)\n", + "\u001b[31mFileNotFoundException\u001b[39m: Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)" + ] + } + ], "source": [ "import clr\n", "from helper_functions import resolve_numerics_dll\n", @@ -252,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "b3a59cb5", "metadata": { "execution": { @@ -291,7 +303,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "f6b4f2fd", "metadata": { "execution": { @@ -346,7 +358,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "d51dfbec", "metadata": { "execution": { @@ -395,7 +407,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "3c61d5ad", "metadata": { "execution": { @@ -441,7 +453,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "b2c575cc", "metadata": { "execution": { @@ -591,7 +603,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/01_distributions.ipynb b/notebooks/01_distributions.ipynb index a81258f..cd3c0ce 100644 --- a/notebooks/01_distributions.ipynb +++ b/notebooks/01_distributions.ipynb @@ -2531,7 +2531,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/02_distribution_fitting.ipynb b/notebooks/02_distribution_fitting.ipynb index f91ae38..664ad2a 100644 --- a/notebooks/02_distribution_fitting.ipynb +++ b/notebooks/02_distribution_fitting.ipynb @@ -806,7 +806,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/03_mcmc_basics.ipynb b/notebooks/03_mcmc_basics.ipynb index d72f6a9..97e6a25 100644 --- a/notebooks/03_mcmc_basics.ipynb +++ b/notebooks/03_mcmc_basics.ipynb @@ -117,10 +117,14 @@ }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "✓ Setup complete\n" + "ename": "FileNotFoundException", + "evalue": "Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mFileNotFoundException\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 12\u001b[39m\n\u001b[32m 10\u001b[39m \u001b[38;5;66;03m# Load Numerics DLL (auto-discovered from NuGet; see notebook 00 for details)\u001b[39;00m\n\u001b[32m 11\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mhelper_functions\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m resolve_numerics_dll\n\u001b[32m---> \u001b[39m\u001b[32m12\u001b[39m \u001b[43mclr\u001b[49m\u001b[43m.\u001b[49m\u001b[43mAddReference\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mresolve_numerics_dll\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 14\u001b[39m \u001b[38;5;66;03m# Import MCMC and distribution classes\u001b[39;00m\n\u001b[32m 15\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mNumerics\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mSampling\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mMCMC\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m RWMH, MCMCResults, LogLikelihood, MCMCSampler\n", + "\u001b[31mFileNotFoundException\u001b[39m: Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)" ] } ], @@ -150,7 +154,6 @@ }, { "cell_type": "markdown", - "execution_count": null, "id": "8f4b903e", "metadata": { "execution": { @@ -160,7 +163,6 @@ "shell.execute_reply": "2026-04-23T21:32:20.774600Z" } }, - "outputs": [], "source": [ "> **Note for demo users.** When calling Numerics MCMC samplers from Python via pythonnet, the samplers' internal parallel chains (`Parallel.For`) contend for Python's Global Interpreter Lock (GIL). This makes parallel execution slower than sequential. That's why every example below sets `sampler.ParallelizeChains = False`. It defaults to `True`, which works well in C# but slows the sampler down when driven from Python." ] @@ -181,7 +183,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "04138f5a", "metadata": { "execution": { @@ -255,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "68d30485", "metadata": { "execution": { @@ -316,7 +318,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "e8aca3ab", "metadata": { "execution": { @@ -394,7 +396,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "165d8ce2", "metadata": { "execution": { @@ -457,7 +459,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "59d808ac", "metadata": { "execution": { @@ -523,7 +525,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "8b653f22", "metadata": { "execution": { @@ -662,7 +664,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "eb20ce0a", "metadata": { "execution": { @@ -727,7 +729,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "2a1a8d09", "metadata": { "execution": { @@ -917,7 +919,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "066f0505", "metadata": { "execution": { @@ -1037,7 +1039,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -1051,7 +1053,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/04_mcmc_bayesian_inference.ipynb b/notebooks/04_mcmc_bayesian_inference.ipynb index 1472293..3ccd48f 100644 --- a/notebooks/04_mcmc_bayesian_inference.ipynb +++ b/notebooks/04_mcmc_bayesian_inference.ipynb @@ -29,7 +29,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "46006368", "metadata": { "execution": { @@ -76,7 +76,6 @@ }, { "cell_type": "markdown", - "execution_count": null, "id": "d3ef7a3e", "metadata": { "execution": { @@ -86,7 +85,6 @@ "shell.execute_reply": "2026-04-23T19:23:09.776975Z" } }, - "outputs": [], "source": [ "> **Note for demo users.** When calling Numerics MCMC samplers from Python via pythonnet, the samplers' internal parallel chains (`Parallel.For`) contend for Python's Global Interpreter Lock (GIL). This makes parallel execution slower than sequential. That's why every example below sets `sampler.ParallelizeChains = False`. It defaults to `True`, which works well in C# but slows the sampler down when driven from Python." ] @@ -105,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "6d40f966", "metadata": { "execution": { @@ -250,7 +248,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "9ebe9b66", "metadata": { "execution": { @@ -436,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "18a04004", "metadata": { "execution": { @@ -610,7 +608,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "54366e57", "metadata": { "execution": { @@ -798,7 +796,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "8bbd362c", "metadata": { "execution": { @@ -1005,7 +1003,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "8ecdca79", "metadata": { "execution": { @@ -1197,7 +1195,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "111be476", "metadata": { "execution": { @@ -1479,7 +1477,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -1493,7 +1491,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/05_mcmc_adaptive.ipynb b/notebooks/05_mcmc_adaptive.ipynb index 427d968..520470e 100644 --- a/notebooks/05_mcmc_adaptive.ipynb +++ b/notebooks/05_mcmc_adaptive.ipynb @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "6f5439b8", "metadata": { "execution": { @@ -94,7 +94,6 @@ }, { "cell_type": "markdown", - "execution_count": null, "id": "9a147b4e", "metadata": { "execution": { @@ -104,7 +103,6 @@ "shell.execute_reply": "2026-04-23T19:27:24.856576Z" } }, - "outputs": [], "source": [ "> **Note for demo users.** When calling Numerics MCMC samplers from Python via pythonnet, the samplers' internal parallel chains (`Parallel.For`) contend for Python's Global Interpreter Lock (GIL). This makes parallel execution slower than sequential. That's why every example below sets `sampler.ParallelizeChains = False`. It defaults to `True`, which works well in C# but slows the sampler down when driven from Python." ] @@ -120,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "ef3f0173", "metadata": { "execution": { @@ -231,7 +229,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "f230fcf0", "metadata": { "execution": { @@ -496,7 +494,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "031793f7", "metadata": { "execution": { @@ -788,7 +786,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "5840b6c1", "metadata": { "execution": { @@ -1072,7 +1070,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "2a1a1ca1", "metadata": { "execution": { @@ -1335,7 +1333,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "689c6a99", "metadata": { "execution": { @@ -2114,7 +2112,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -2128,7 +2126,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/06_mcmc_diagnostics.ipynb b/notebooks/06_mcmc_diagnostics.ipynb index 1d7176f..db0c891 100644 --- a/notebooks/06_mcmc_diagnostics.ipynb +++ b/notebooks/06_mcmc_diagnostics.ipynb @@ -71,21 +71,24 @@ "name": "stderr", "output_type": "stream", "text": [ - "WARNING (pytensor.configdefaults): g++ not available, if using conda: `conda install gxx`\n" + "WARNING (pytensor.configdefaults): g++ not available, if using conda: `conda install gxx`\n", + "WARNING (pytensor.configdefaults): g++ not detected! PyTensor will be unable to compile C-implementations and will default to Python. Performance may be severely degraded. To remove this warning, set PyTensor flags cxx to an empty string.\n", + "c:\\GIT\\Numerics-Python-Examples\\.venv\\Lib\\site-packages\\arviz\\__init__.py:39: FutureWarning: \n", + "ArviZ is undergoing a major refactor to improve flexibility and extensibility while maintaining a user-friendly interface.\n", + "Some upcoming changes may be backward incompatible.\n", + "For details and migration guidance, visit: https://python.arviz.org/en/latest/user_guide/migration_guide.html\n", + " warn(\n" ] }, { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING (pytensor.configdefaults): g++ not detected! PyTensor will be unable to compile C-implementations and will default to Python. Performance may be severely degraded. To remove this warning, set PyTensor flags cxx to an empty string.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "✓ Setup complete\n" + "ename": "FileNotFoundException", + "evalue": "Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mFileNotFoundException\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 14\u001b[39m\n\u001b[32m 12\u001b[39m \u001b[38;5;66;03m# Load Numerics DLL (auto-discovered from NuGet; see notebook 00 for details)\u001b[39;00m\n\u001b[32m 13\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mhelper_functions\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m resolve_numerics_dll\n\u001b[32m---> \u001b[39m\u001b[32m14\u001b[39m \u001b[43mclr\u001b[49m\u001b[43m.\u001b[49m\u001b[43mAddReference\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mresolve_numerics_dll\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 16\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mNumerics\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mDistributions\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m Normal, Uniform, IUnivariateDistribution\n\u001b[32m 17\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mNumerics\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mSampling\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mMCMC\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m MCMCSampler, LogLikelihood, RWMH, DEMCz, MCMCResults, MCMCDiagnostics\n", + "\u001b[31mFileNotFoundException\u001b[39m: Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)" ] } ], @@ -117,7 +120,6 @@ }, { "cell_type": "markdown", - "execution_count": null, "id": "050862de", "metadata": { "execution": { @@ -127,7 +129,6 @@ "shell.execute_reply": "2026-04-23T19:25:19.576637Z" } }, - "outputs": [], "source": [ "> **Note for demo users.** When calling Numerics MCMC samplers from Python via pythonnet, the samplers' internal parallel chains (`Parallel.For`) contend for Python's Global Interpreter Lock (GIL). This makes parallel execution slower than sequential. That's why every example below sets `sampler.ParallelizeChains = False`. It defaults to `True`, which works well in C# but slows the sampler down when driven from Python." ] @@ -143,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "fb862dd7", "metadata": { "execution": { @@ -230,7 +231,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "7d4fdd62", "metadata": { "execution": { @@ -329,7 +330,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "d1d14174", "metadata": { "execution": { @@ -466,7 +467,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "54bff338", "metadata": { "execution": { @@ -631,7 +632,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "77f70e55", "metadata": { "execution": { @@ -934,7 +935,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -948,7 +949,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/07_integration_and_root_finding.ipynb b/notebooks/07_integration_and_root_finding.ipynb index b1d4d68..caf7b98 100644 --- a/notebooks/07_integration_and_root_finding.ipynb +++ b/notebooks/07_integration_and_root_finding.ipynb @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "77f586f1", "metadata": { "execution": { @@ -155,7 +155,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "14832777", "metadata": { "execution": { @@ -281,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "55ffb596", "metadata": { "execution": { @@ -339,7 +339,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "e6cda38c", "metadata": { "execution": { @@ -583,7 +583,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "8927ddd5", "metadata": { "execution": { @@ -701,7 +701,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "d432af08", "metadata": { "execution": { @@ -897,7 +897,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "fdd6e706", "metadata": { "execution": { @@ -1076,7 +1076,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/08_optimization.ipynb b/notebooks/08_optimization.ipynb index a29bf90..e099e53 100644 --- a/notebooks/08_optimization.ipynb +++ b/notebooks/08_optimization.ipynb @@ -69,10 +69,14 @@ }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "✓ Setup complete\n" + "ename": "FileNotFoundException", + "evalue": "Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mFileNotFoundException\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 15\u001b[39m\n\u001b[32m 13\u001b[39m \u001b[38;5;66;03m# Load Numerics DLL (auto-discovered from NuGet; see notebook 00 for details)\u001b[39;00m\n\u001b[32m 14\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mhelper_functions\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m resolve_numerics_dll\n\u001b[32m---> \u001b[39m\u001b[32m15\u001b[39m \u001b[43mclr\u001b[49m\u001b[43m.\u001b[49m\u001b[43mAddReference\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mresolve_numerics_dll\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 17\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mNumerics\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mMathematics\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mOptimization\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m (NelderMead, BFGS, Powell, ParticleSwarm, SimulatedAnnealing, AugmentedLagrange, \n\u001b[32m 18\u001b[39m DifferentialEvolution, MultiStart, LocalMethod, ShuffledComplexEvolution, MLSL, \n\u001b[32m 19\u001b[39m ConstraintType, IConstraint, Constraint)\n\u001b[32m 20\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mSystem\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m Func, Double, Array\n", + "\u001b[31mFileNotFoundException\u001b[39m: Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)" ] } ], @@ -148,7 +152,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "257c6335", "metadata": { "execution": { @@ -329,7 +333,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "8038ddaf", "metadata": { "execution": { @@ -405,7 +409,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "a8404958", "metadata": { "execution": { @@ -654,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "8dd59070", "metadata": { "execution": { @@ -855,7 +859,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "0f08b2d1", "metadata": { "execution": { @@ -985,7 +989,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "f9b11c6a", "metadata": { "execution": { @@ -1080,7 +1084,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "3c5ff6ab", "metadata": { "execution": { @@ -1654,7 +1658,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "38870fa8", "metadata": { "execution": { @@ -1750,7 +1754,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "0b5107d1", "metadata": { "execution": { @@ -1908,7 +1912,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -1922,7 +1926,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/09_statistics.ipynb b/notebooks/09_statistics.ipynb index a91c03e..b7b85f2 100644 --- a/notebooks/09_statistics.ipynb +++ b/notebooks/09_statistics.ipynb @@ -1770,7 +1770,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/10_time_series.ipynb b/notebooks/10_time_series.ipynb index 653e6ed..55ac66c 100644 --- a/notebooks/10_time_series.ipynb +++ b/notebooks/10_time_series.ipynb @@ -49,10 +49,14 @@ }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "✓ Setup complete\n" + "ename": "FileNotFoundException", + "evalue": "Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mFileNotFoundException\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 15\u001b[39m\n\u001b[32m 13\u001b[39m \u001b[38;5;66;03m# Load Numerics DLL (auto-discovered from NuGet; see notebook 00 for details)\u001b[39;00m\n\u001b[32m 14\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mhelper_functions\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m resolve_numerics_dll\n\u001b[32m---> \u001b[39m\u001b[32m15\u001b[39m \u001b[43mclr\u001b[49m\u001b[43m.\u001b[49m\u001b[43mAddReference\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mresolve_numerics_dll\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 17\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mNumerics\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mData\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m TimeSeries, TimeInterval, BlockFunctionType,TimeSeriesDownload, SeriesOrdinate\n\u001b[32m 18\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mNumerics\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mData\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mStatistics\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m HypothesisTests\n", + "\u001b[31mFileNotFoundException\u001b[39m: Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)" ] } ], @@ -96,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "7920c388", "metadata": { "execution": { @@ -139,7 +143,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "905e99f7", "metadata": { "execution": { @@ -286,7 +290,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "52a29de1", "metadata": { "execution": { @@ -339,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "1bba559e", "metadata": { "execution": { @@ -419,7 +423,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "fc2ead01", "metadata": { "execution": { @@ -509,7 +513,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "398a4dc7", "metadata": { "execution": { @@ -668,7 +672,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "075117cb", "metadata": { "execution": { @@ -1269,7 +1273,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "eade433e", "metadata": { "execution": { @@ -1351,7 +1355,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "be088a1b", "metadata": { "execution": { @@ -1478,7 +1482,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "30a96ee9", "metadata": { "execution": { @@ -1604,7 +1608,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "99960460", "metadata": { "execution": { @@ -1669,7 +1673,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "162ad1a1", "metadata": { "execution": { @@ -1907,7 +1911,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "16b74b83", "metadata": { "execution": { @@ -1983,7 +1987,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "1b195184", "metadata": { "execution": { @@ -2051,7 +2055,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "63baea13", "metadata": { "execution": { @@ -2198,7 +2202,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/11_machine_learning.ipynb b/notebooks/11_machine_learning.ipynb index 71bc333..80ff240 100644 --- a/notebooks/11_machine_learning.ipynb +++ b/notebooks/11_machine_learning.ipynb @@ -51,7 +51,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "d51a1a5f", "metadata": { "execution": { @@ -115,7 +115,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "f434370f", "metadata": { "execution": { @@ -167,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "f2dcf1e1", "metadata": { "execution": { @@ -268,7 +268,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "044edbe6", "metadata": { "execution": { @@ -507,7 +507,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "48bdd0c5", "metadata": { "execution": { @@ -584,7 +584,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "5ebaa4fd", "metadata": { "execution": { @@ -837,7 +837,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "07fb1a32", "metadata": { "execution": { @@ -944,7 +944,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "1c8a5985", "metadata": { "execution": { @@ -1093,7 +1093,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "3e679f8c", "metadata": { "execution": { @@ -1240,7 +1240,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "82e51962", "metadata": { "execution": { @@ -1395,7 +1395,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "4d31156b", "metadata": { "execution": { @@ -1544,7 +1544,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "4ea747d7", "metadata": { "execution": { @@ -1699,7 +1699,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "c4198906", "metadata": { "execution": { @@ -1839,7 +1839,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "03961157", "metadata": { "execution": { @@ -1984,7 +1984,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "b34358b8", "metadata": { "execution": { @@ -2212,7 +2212,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/notebooks/12_linear_models.ipynb b/notebooks/12_linear_models.ipynb index 4c3fa48..a7f7ee7 100644 --- a/notebooks/12_linear_models.ipynb +++ b/notebooks/12_linear_models.ipynb @@ -73,10 +73,14 @@ }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "✓ Setup complete\n" + "ename": "FileNotFoundException", + "evalue": "Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mFileNotFoundException\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 16\u001b[39m\n\u001b[32m 14\u001b[39m \u001b[38;5;66;03m# Load Numerics DLL (auto-discovered from NuGet; see notebook 00 for details)\u001b[39;00m\n\u001b[32m 15\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mhelper_functions\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m resolve_numerics_dll\n\u001b[32m---> \u001b[39m\u001b[32m16\u001b[39m \u001b[43mclr\u001b[49m\u001b[43m.\u001b[49m\u001b[43mAddReference\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mresolve_numerics_dll\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 18\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mNumerics\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mMachineLearning\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m GeneralizedLinearModel\n\u001b[32m 19\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mNumerics\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mFunctions\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m LinkFunctionType\n", + "\u001b[31mFileNotFoundException\u001b[39m: Unable to find assembly 'c:\\GIT\\BestFit-Python-Examples\\packages\\RMC.Numerics.2.0.1\\lib\\net8.0\\Numerics.dll'.\r\n at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/.cache/uv/sdists-v6/.tmpkW03e6/pythonnet-3.0.5/src/runtime/Types/ClrModule.cs:line 117\r\n at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)\r\n at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)" ] } ], @@ -130,7 +134,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "9bcf2de4", "metadata": { "execution": { @@ -262,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "c8b3c3f5", "metadata": { "execution": { @@ -426,7 +430,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "85707787", "metadata": { "execution": { @@ -600,7 +604,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "3f5bd43d", "metadata": { "execution": { @@ -759,7 +763,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "478063bd", "metadata": { "execution": { @@ -984,7 +988,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "959a45fd", "metadata": { "execution": { @@ -1222,7 +1226,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.13.1" } }, "nbformat": 4,