Files
nanoconc/scratch.ipynb
2024-02-02 09:38:42 +00:00

1759 lines
129 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Main.nanoconc"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"using Serialization\n",
"\n",
"include(\"src/nanoconc.jl\")"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MethodInstance for Main.nanoconc.abspredict(::Float64, ::Float64, ::Float64, ::UInt32, ::Matrix{Float64}, ::Tuple{Float64, Float64, Float64, Matrix{Float64}}, ::Float64, ::Float64)\n",
" from abspredict(\u001b[90mrefmed\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mwavel1\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mwavel2\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mnumval\u001b[39m::\u001b[1mUInt32\u001b[22m, \u001b[90mparticledata\u001b[39m::\u001b[1mMatrix\u001b[22m\u001b[0m{Float64}, \u001b[90mmaterialdata\u001b[39m::\u001b[1mTuple\u001b[22m\u001b[0m{Float64, Float64, Float64, Matrix{Float64}}, \u001b[90mppml\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90md0\u001b[39m::\u001b[1mFloat64\u001b[22m)\u001b[90m @\u001b[39m \u001b[90mMain.nanoconc\u001b[39m \u001b[90m~/Programming/Work_Projects/nanoconc/src/\u001b[39m\u001b[90m\u001b[4mnanoconc.jl:264\u001b[24m\u001b[39m\n",
"Arguments\n",
" #self#\u001b[36m::Core.Const(Main.nanoconc.abspredict)\u001b[39m\n",
" refmed\u001b[36m::Float64\u001b[39m\n",
" wavel1\u001b[36m::Float64\u001b[39m\n",
" wavel2\u001b[36m::Float64\u001b[39m\n",
" numval\u001b[36m::UInt32\u001b[39m\n",
" particledata\u001b[36m::Matrix{Float64}\u001b[39m\n",
" materialdata\u001b[36m::Tuple{Float64, Float64, Float64, Matrix{Float64}}\u001b[39m\n",
" ppml\u001b[36m::Float64\u001b[39m\n",
" d0\u001b[36m::Float64\u001b[39m\n",
"Locals\n",
" predict\u001b[36m::Main.nanoconc.var\"#predict#22\"{Matrix{Float64}, Float64, Float64}\u001b[39m\n",
" data\u001b[36m::Matrix{Float64}\u001b[39m\n",
"Body\u001b[36m::Matrix{Float64}\u001b[39m\n",
"\u001b[90m1 ─\u001b[39m %1 = Core.apply_type(Main.nanoconc.Array, Main.nanoconc.Float64, 2)\u001b[36m::Core.Const(Matrix{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m (data = Main.nanoconc.qpredict(refmed, wavel1, wavel2, numval, particledata, materialdata))\n",
"\u001b[90m│ \u001b[39m %3 = Main.nanoconc.:(var\"#predict#22\")\u001b[36m::Core.Const(Main.nanoconc.var\"#predict#22\")\u001b[39m\n",
"\u001b[90m│ \u001b[39m %4 = Core.typeof(particledata)\u001b[36m::Core.Const(Matrix{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %5 = Core.typeof(ppml)\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %6 = Core.typeof(d0)\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %7 = Core.apply_type(%3, %4, %5, %6)\u001b[36m::Core.Const(Main.nanoconc.var\"#predict#22\"{Matrix{Float64}, Float64, Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m (predict = %new(%7, particledata, ppml, d0))\n",
"\u001b[90m│ \u001b[39m %9 = predict\u001b[36m::Main.nanoconc.var\"#predict#22\"{Matrix{Float64}, Float64, Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %10 = Base.getindex(data, Main.nanoconc.:(:), 2)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %11 = Base.broadcasted(%9, %10)\u001b[36m::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Nothing, Main.nanoconc.var\"#predict#22\"{Matrix{Float64}, Float64, Float64}, Tuple{Vector{Float64}}}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %12 = Base.materialize(%11)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m Base.setindex!(data, %12, Main.nanoconc.:(:), 2)\n",
"\u001b[90m│ \u001b[39m %14 = Base.convert(%1, data)\u001b[36m::Matrix{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %15 = Core.typeassert(%14, %1)\u001b[36m::Matrix{Float64}\u001b[39m\n",
"\u001b[90m└──\u001b[39m return %15\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: replacing module nanoconc.\n"
]
}
],
"source": [
"include(\"src/nanoconc.jl\")\n",
"test_data = deserialize(\"test/data/Main.nanoconc.abspredict.ser\")\n",
"test_data = test_data[1]\n",
"args, kwargs = test_data[1]\n",
"@code_warntype nanoconc.abspredict(args..., kwargs...)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: replacing module nanoconc.\n"
]
},
{
"ename": "LoadError",
"evalue": "LoadError: UndefVarError: `@code_warntype` not defined\nin expression starting at /home/cianh/Programming/Work_Projects/nanoconc/src/miemfp.jl:318\nin expression starting at /home/cianh/Programming/Work_Projects/nanoconc/src/miemfp.jl:1\nin expression starting at /home/cianh/Programming/Work_Projects/nanoconc/src/nanoconc.jl:1",
"output_type": "error",
"traceback": [
"LoadError: UndefVarError: `@code_warntype` not defined\n",
"in expression starting at /home/cianh/Programming/Work_Projects/nanoconc/src/miemfp.jl:318\n",
"in expression starting at /home/cianh/Programming/Work_Projects/nanoconc/src/miemfp.jl:1\n",
"in expression starting at /home/cianh/Programming/Work_Projects/nanoconc/src/nanoconc.jl:1\n"
]
}
],
"source": [
"include(\"src/nanoconc.jl\")\n",
"test_data = deserialize(\"test/data/Main.nanoconc.miemfp.mfp.ser\")\n",
"test_data = test_data[1]\n",
"args, kwargs = test_data[1]\n",
"@code_warntype nanoconc.miemfp.mfp(args..., kwargs...)"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MethodInstance for Main.nanoconc.miemfp.qbare(::Float64, ::Float64, ::UInt32, ::UInt32, ::Float64, ::Float64, ::Float64, ::Float64, ::Float64, ::Matrix{Float64})\n",
" from qbare(\u001b[90mwavel1\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mwavel2\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mnumval\u001b[39m::\u001b[1mUInt32\u001b[22m, \u001b[90mscangles\u001b[39m::\u001b[1mUInt32\u001b[22m, \u001b[90mrefmed\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mradcore\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90momp\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mom0\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mfv\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mrefcore\u001b[39m::\u001b[1mMatrix\u001b[22m\u001b[0m{Float64})\u001b[90m @\u001b[39m \u001b[90mMain.nanoconc.miemfp\u001b[39m \u001b[90m~/Programming/Work_Projects/nanoconc/src/\u001b[39m\u001b[90m\u001b[4mmiemfp.jl:320\u001b[24m\u001b[39m\n",
"Arguments\n",
" #self#\u001b[36m::Core.Const(Main.nanoconc.miemfp.qbare)\u001b[39m\n",
" wavel1\u001b[36m::Float64\u001b[39m\n",
" wavel2\u001b[36m::Float64\u001b[39m\n",
" numval\u001b[36m::UInt32\u001b[39m\n",
" scangles\u001b[36m::UInt32\u001b[39m\n",
" refmed\u001b[36m::Float64\u001b[39m\n",
" radcore\u001b[36m::Float64\u001b[39m\n",
" omp\u001b[36m::Float64\u001b[39m\n",
" om0\u001b[36m::Float64\u001b[39m\n",
" fv\u001b[36m::Float64\u001b[39m\n",
" refcore\u001b[36m::Matrix{Float64}\u001b[39m\n",
"Locals\n",
" interp_pair\u001b[36m::Main.nanoconc.miemfp.InterpolationPair\u001b[39m\n",
" qarray\u001b[36m::Matrix{Float64}\u001b[39m\n",
" wavelengths\u001b[36m::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}\u001b[39m\n",
" interp_ref_rn\u001b[36m::Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}\u001b[39m\n",
" interp_ref_rk\u001b[36m::Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}\u001b[39m\n",
" map_fn\u001b[36m::Main.nanoconc.miemfp._bhmie\u001b[39m\n",
" threadsfor_fun\u001b[36m::Main.nanoconc.miemfp.var\"#957#threadsfor_fun#20\"{Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}}}\u001b[39m\n",
" val\u001b[36m::Nothing\u001b[39m\n",
" mfp_fn\u001b[36m::Main.nanoconc.miemfp._mfp\u001b[39m\n",
" threadsfor_fun#19\u001b[36m::Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}}\u001b[39m\n",
" range\u001b[36m::UnitRange{UInt32}\u001b[39m\n",
"Body\u001b[36m::Matrix{Float64}\u001b[39m\n",
"\u001b[90m1 ─\u001b[39m %1 = Core.apply_type(Main.nanoconc.miemfp.Matrix, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Matrix{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %2 = Main.nanoconc.miemfp._calc_delta_wl(wavel1, wavel2, numval)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %3 = (wavel1:%2:wavel2)\u001b[36m::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %4 = Core.apply_type(Main.nanoconc.miemfp.StepRangeLen, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(StepRangeLen{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %5 = Base.convert(%4, %3)\u001b[36m::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (wavelengths = Core.typeassert(%5, %4))\n",
"\u001b[90m│ \u001b[39m %7 = wavelengths\u001b[36m::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %8 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Vector{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %9 = Main.nanoconc.miemfp.undef\u001b[36m::Core.Const(UndefInitializer())\u001b[39m\n",
"\u001b[90m│ \u001b[39m %10 = (%8)(%9, numval)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %11 = Main.nanoconc.miemfp.hcat(%7, %10)\u001b[36m::Matrix{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %12 = Core.apply_type(Main.nanoconc.miemfp.Matrix, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Matrix{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %13 = Base.convert(%12, %11)\u001b[36m::Matrix{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (qarray = Core.typeassert(%13, %12))\n",
"\u001b[90m│ \u001b[39m %15 = Main.nanoconc.miemfp._get_rnrk_interp_objects(refcore)\u001b[36m::Main.nanoconc.miemfp.InterpolationPair\u001b[39m\n",
"\u001b[90m│ \u001b[39m %16 = Base.convert(Main.nanoconc.miemfp.InterpolationPair, %15)\u001b[36m::Main.nanoconc.miemfp.InterpolationPair\u001b[39m\n",
"\u001b[90m│ \u001b[39m (interp_pair = Core.typeassert(%16, Main.nanoconc.miemfp.InterpolationPair))\n",
"\u001b[90m│ \u001b[39m %18 = Base.getproperty(interp_pair, :rn)\u001b[36m::Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (interp_ref_rn = %18)\n",
"\u001b[90m│ \u001b[39m %20 = Base.getproperty(interp_pair, :rk)\u001b[36m::Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (interp_ref_rk = %20)\n",
"\u001b[90m│ \u001b[39m %22 = Main.nanoconc.miemfp._bhmie(scangles)\u001b[36m::Main.nanoconc.miemfp._bhmie\u001b[39m\n",
"\u001b[90m│ \u001b[39m (map_fn = %22)\n",
"\u001b[90m│ \u001b[39m %24 = Main.nanoconc.miemfp._mfp(fv, radcore, omp, om0)\u001b[36m::Main.nanoconc.miemfp._mfp\u001b[39m\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(val))\n",
"\u001b[90m│ \u001b[39m (mfp_fn = %24)\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m %28 = (0x00000001:numval)\u001b[36m::Core.PartialStruct(UnitRange{UInt32}, Any[Core.Const(0x00000001), UInt32])\u001b[39m\n",
"\u001b[90m│ \u001b[39m (range = %28)\n",
"\u001b[90m│ \u001b[39m %30 = Main.nanoconc.miemfp.:(var\"#957#threadsfor_fun#19#21\")\u001b[36m::Core.Const(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\")\u001b[39m\n",
"\u001b[90m│ \u001b[39m %31 = Core.typeof(refmed)\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %32 = Core.typeof(radcore)\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %33 = Core.typeof(qarray)\u001b[36m::Core.Const(Matrix{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %34 = Core.typeof(interp_ref_rn)\u001b[36m::Core.Const(Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %35 = Core.typeof(interp_ref_rk)\u001b[36m::Core.Const(Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %36 = Core.typeof(map_fn)\u001b[36m::Core.Const(Main.nanoconc.miemfp._bhmie)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %37 = Core.typeof(mfp_fn)\u001b[36m::Core.Const(Main.nanoconc.miemfp._mfp)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %38 = Core.typeof(range::Core.PartialStruct(UnitRange{UInt32}, Any[Core.Const(0x00000001), UInt32]))\u001b[36m::Core.Const(UnitRange{UInt32})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %39 = Core.apply_type(%30, %31, %32, %33, %34, %35, %36, %37, %38)\u001b[36m::Core.Const(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %40 = qarray\u001b[36m::Matrix{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %41 = interp_ref_rn\u001b[36m::Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}\u001b[39m\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[90m│ \u001b[39m %42 = interp_ref_rk\u001b[36m::Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %43 = map_fn\u001b[36m::Main.nanoconc.miemfp._bhmie\u001b[39m\n",
"\u001b[90m│ \u001b[39m %44 = mfp_fn\u001b[36m::Main.nanoconc.miemfp._mfp\u001b[39m\n",
"\u001b[90m│ \u001b[39m (threadsfor_fun#19 = %new(%39, refmed, radcore, %40, %41, %42, %43, %44, range::Core.PartialStruct(UnitRange{UInt32}, Any[Core.Const(0x00000001), UInt32])))\n",
"\u001b[90m│ \u001b[39m %46 = Main.nanoconc.miemfp.:(var\"#957#threadsfor_fun#20\")\u001b[36m::Core.Const(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#20\")\u001b[39m\n",
"\u001b[90m│ \u001b[39m %47 = Core.typeof(threadsfor_fun#19::Core.PartialStruct(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}}, Any[Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, Core.PartialStruct(UnitRange{UInt32}, Any[Core.Const(0x00000001), UInt32])]))\u001b[36m::Core.Const(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %48 = Core.apply_type(%46, %47)\u001b[36m::Core.Const(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#20\"{Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}}})\u001b[39m\n",
"\u001b[90m│ \u001b[39m (threadsfor_fun = %new(%48, threadsfor_fun#19::Core.PartialStruct(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}}, Any[Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, Core.PartialStruct(UnitRange{UInt32}, Any[Core.Const(0x00000001), UInt32])])))\n",
"\u001b[90m│ \u001b[39m %50 = threadsfor_fun\u001b[36m::Core.PartialStruct(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#20\"{Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}}}, Any[Core.PartialStruct(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}}, Any[Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, Core.PartialStruct(UnitRange{UInt32}, Any[Core.Const(0x00000001), UInt32])])])\u001b[39m\n",
"\u001b[90m│ \u001b[39m Core.ifelse(false, false, %50)\n",
"\u001b[90m└──\u001b[39m goto #3 if not true\n",
"\u001b[90m2 ─\u001b[39m Base.Threads.threading_run(threadsfor_fun::Core.PartialStruct(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#20\"{Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}}}, Any[Core.PartialStruct(Main.nanoconc.miemfp.var\"#957#threadsfor_fun#19#21\"{Float64, Float64, Matrix{Float64}, Interpolations."
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, UnitRange{UInt32}}, Any[Float64, Float64, Matrix{Float64}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Interpolations.Extrapolation{Float64, 1, Interpolations.GriddedInterpolation{Float64, 1, Vector{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Interpolations.Throw{Nothing}}, Main.nanoconc.miemfp._bhmie, Main.nanoconc.miemfp._mfp, Core.PartialStruct(UnitRange{UInt32}, Any[Core.Const(0x00000001), UInt32])])]), false)\n",
"\u001b[90m└──\u001b[39m goto #4\n",
"\u001b[90m3 ─\u001b[39m Core.Const(:($(Expr(:foreigncall, :(:jl_in_threaded_region), Int32, svec(), 0, :(:ccall)))))\n",
"\u001b[90m│ \u001b[39m Core.Const(:(%55 != 0))\n",
"\u001b[90m│ \u001b[39m Core.Const(:(goto %60 if not %56))\n",
"\u001b[90m│ \u001b[39m Core.Const(:(Base.Threads.error(\"`@threads :static` cannot be used concurrently or nested\")))\n",
"\u001b[90m│ \u001b[39m Core.Const(:(goto %61))\n",
"\u001b[90m└──\u001b[39m Core.Const(:(Base.Threads.threading_run(threadsfor_fun, true)))\n",
"\u001b[90m4 ┄\u001b[39m (val = Base.Threads.nothing)\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m val\n",
"\u001b[90m│ \u001b[39m %64 = Base.convert(%1, qarray)\u001b[36m::Matrix{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %65 = Core.typeassert(%64, %1)\u001b[36m::Matrix{Float64}\u001b[39m\n",
"\u001b[90m└──\u001b[39m return %65\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: replacing module nanoconc.\n"
]
}
],
"source": [
"include(\"src/nanoconc.jl\")\n",
"test_data = deserialize(\"test/data/Main.nanoconc.miemfp.qbare.ser\")\n",
"# test_data = test_data[1]\n",
"args, kwargs = test_data[1][1]\n",
"@code_warntype nanoconc.miemfp.qbare(args..., kwargs...)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MethodInstance for Distributed.pmap(::Main.miemfp._bhmie, ::Vector{Float64}, ::Vector{ComplexF64})\n",
" from pmap(\u001b[90mf\u001b[39m, \u001b[90mc1\u001b[39m, \u001b[90mc...\u001b[39m; kwargs...)\u001b[90m @\u001b[39m \u001b[90mDistributed\u001b[39m \u001b[90m/usr/share/julia/stdlib/v1.9/Distributed/src/\u001b[39m\u001b[90m\u001b[4mpmap.jl:157\u001b[24m\u001b[39m\n",
"Arguments\n",
" #self#\u001b[36m::Core.Const(Distributed.pmap)\u001b[39m\n",
" f\u001b[36m::Main.miemfp._bhmie\u001b[39m\n",
" c1\u001b[36m::Vector{Float64}\u001b[39m\n",
" c\u001b[36m::Tuple{Vector{ComplexF64}}\u001b[39m\n",
"Body\u001b[91m\u001b[1m::Any\u001b[22m\u001b[39m\n",
"\u001b[90m1 ─\u001b[39m %1 = Distributed.:(var\"#pmap#234\")\u001b[36m::Core.Const(Distributed.var\"#pmap#234\")\u001b[39m\n",
"\u001b[90m│ \u001b[39m %2 = Core.NamedTuple()\u001b[36m::Core.Const(NamedTuple())\u001b[39m\n",
"\u001b[90m│ \u001b[39m %3 = Base.pairs(%2)\u001b[36m::Core.Const(Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}())\u001b[39m\n",
"\u001b[90m│ \u001b[39m %4 = Core.tuple(%3, #self#, f, c1)\u001b[36m::Tuple{Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(pmap), Main.miemfp._bhmie, Vector{Float64}}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %5 = Core._apply_iterate(Base.iterate, %1, %4, c)\u001b[91m\u001b[1m::Any\u001b[22m\u001b[39m\n",
"\u001b[90m└──\u001b[39m return %5\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: replacing module miemfp.\n"
]
}
],
"source": [
"include(\"src/miemfp.jl\")\n",
"using Distributed\n",
"test_data = deserialize(\"test/data/Main.nanoconc.miemfp.qbare.ser\")\n",
"# test_data = test_data[1]\n",
"args, kwargs = test_data[1][1]\n",
"\n",
"function qbare(wavel1::Float64, wavel2::Float64, numval::UInt32, scangles::UInt32,\n",
" refmed::Float64, radcore::Float64, omp::Float64, om0::Float64,\n",
" fv::Float64, refcore::Array{Float64,2})\n",
"\n",
" # calculate the new wavelengths\n",
" let wavelengths::StepRangeLen{Float64} = wavel1:miemfp._calc_delta_wl(wavel1, wavel2, numval):wavel2,\n",
" interp_pair::miemfp.InterpolationPair = miemfp._get_rnrk_interp_objects(refcore)\n",
"\n",
" let interp_ref_rn = interp_pair.rn, interp_ref_rk = interp_pair.rk, map_fn = miemfp._bhmie(scangles)\n",
" # @code_warntype miemfp._bhmie(scangles)(\n",
" # first(miemfp._calc_apparent_cross_section(radcore, refmed) ./ wavelengths),\n",
" # first(miemfp._mfp(fv, radcore, omp, om0).(wavelengths, interp_ref_rn(wavelengths), interp_ref_rk(wavelengths)) ./ refmed)\n",
" # )\n",
" # @code_warntype map_fn.(\n",
" # miemfp._calc_apparent_cross_section(radcore, refmed) ./ wavelengths,\n",
" # miemfp._mfp(fv, radcore, omp, om0).(wavelengths, interp_ref_rn(wavelengths), interp_ref_rk(wavelengths)) ./ refmed,\n",
" # )\n",
" @code_warntype pmap(\n",
" map_fn,\n",
" miemfp._calc_apparent_cross_section(radcore, refmed) ./ wavelengths,\n",
" miemfp._mfp(fv, radcore, omp, om0).(wavelengths, interp_ref_rn(wavelengths), interp_ref_rk(wavelengths)) ./ refmed\n",
" )\n",
" # return hcat(\n",
" # wavelengths,\n",
" # # _bhmie(scangles).(\n",
" # # _calc_apparent_cross_section(radcore, refmed) ./ wavelengths,\n",
" # # _mfp(fv, radcore, omp, om0).(wavelengths, interp_ref_rn(wavelengths), interp_ref_rk(wavelengths)) ./ refmed,\n",
" # # )\n",
" # pmap(\n",
" # @code_warntype miemfp._bhmie(scangles), # _bhmie(scangles),\n",
" # _calc_apparent_cross_section(radcore, refmed) ./ wavelengths,\n",
" # _mfp(fv, radcore, omp, om0).(wavelengths, interp_ref_rn(wavelengths), interp_ref_rk(wavelengths)) ./ refmed\n",
" # )::Vector{Float64}\n",
" # )\n",
" end\n",
" end\n",
"end\n",
"\n",
"qbare(args..., kwargs...)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"ename": "ErrorException",
"evalue": "type DataType has no field typedict",
"output_type": "error",
"traceback": [
"type DataType has no field typedict\n",
"\n",
"Stacktrace:\n",
" [1] getproperty(x::Type, f::Symbol)\n",
" @ Base ./Base.jl:32\n",
" [2] top-level scope\n",
" @ ~/Programming/Work_Projects/nanoconc/scratch.ipynb:1"
]
}
],
"source": [
"miemfp._bhmie.typedict"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"test (generic function with 1 method)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"function test()\n",
" return 0\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {},
"outputs": [
{
"ename": "UndefVarError",
"evalue": "UndefVarError: `type` not defined",
"output_type": "error",
"traceback": [
"UndefVarError: `type` not defined\n",
"\n",
"Stacktrace:\n",
" [1] top-level scope\n",
" @ ~/Programming/Work_Projects/nanoconc/scratch.ipynb:1"
]
}
],
"source": [
"type(0)"
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"method3 (generic function with 1 method)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"function method1(nn::Int64, y::ComplexF64)::Vector{ComplexF64}\n",
" d::Vector{ComplexF64} = fill(ComplexF64(0.0, 0.0), nn + 1)\n",
" @inbounds @simd for n in (nn:-1:2)::StepRange{Int64,Int64}\n",
" d[n-1] = let n_over_y = n / y\n",
" (n_over_y) - (1.0 / (d[n] + n_over_y))\n",
" end\n",
" end\n",
" return d\n",
"end\n",
"\n",
"function method2(nn::Int64, y::ComplexF64)::Vector{ComplexF64}\n",
" @memoize d_generator(n::Int64)::ComplexF64 =\n",
" if n == nn + 1\n",
" ComplexF64(0.0, 0.0)\n",
" else\n",
" let n_over_y = n / y\n",
" (n_over_y) - (1.0 / (d_generator(n + 1) + n_over_y))\n",
" end\n",
" end\n",
" d_generator.(2:nn+1)\n",
"end\n",
"\n",
"function method3(nn::Int64, y::ComplexF64)::Vector{ComplexF64}\n",
" d_values = Vector{ComplexF64}(undef, nn)\n",
" d_values[nn] = ComplexF64(0.0, 0.0)\n",
" for n in nn:-1:2\n",
" n_over_y = n / y\n",
" d_values[n-1] = n_over_y - (1.0 / (d_values[n] + n_over_y))\n",
" end\n",
" return d_values\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10:-1:1"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"reverse(1:10)"
]
},
{
"cell_type": "code",
"execution_count": 158,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"true"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"cot(0.5) == cos(0.5) / sin(0.5)"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"101-element Vector{ComplexF64}:\n",
" 0.8123382644430177 - 1.2103254935120225im\n",
" 1.3618993272451057 - 1.6471440230163505im\n",
" 1.8912072404172218 - 2.113276215698099im\n",
" 2.410392314803969 - 2.5921488992550263im\n",
" 2.92387985431671 - 3.0776974617009216im\n",
" 3.4338634265187062 - 3.567182086734182im\n",
" 3.9415447299890984 - 4.059183628220866im\n",
" 4.447634627099904 - 4.552892955977411im\n",
" 4.952579621422096 - 5.047814712266423im\n",
" 5.456673934482986 - 5.543628508147122im\n",
" ⋮\n",
" 46.99470928787974 - 47.00529129839747im\n",
" 47.49476468199356 - 47.50523588612103im\n",
" 47.99481892822597 - 48.005181622468555im\n",
" 48.49487206188903 - 48.505128472090405im\n",
" 48.99492411687428 - 49.00507640105976im\n",
" 49.494975379460364 - 49.50502563061513im\n",
" 49.99 - 50.01im\n",
" 0.0 + 0.0im\n",
" 0.0 + 0.0im"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"method1(100, ComplexF64(1.0, 1.0))"
]
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"100-element Vector{ComplexF64}:\n",
" 0.8123382644430177 - 1.2103254935120225im\n",
" 1.3618993272451057 - 1.6471440230163505im\n",
" 1.8912072404172218 - 2.113276215698099im\n",
" 2.410392314803969 - 2.5921488992550263im\n",
" 2.92387985431671 - 3.0776974617009216im\n",
" 3.4338634265187062 - 3.567182086734182im\n",
" 3.9415447299890984 - 4.059183628220866im\n",
" 4.447634627099904 - 4.552892955977411im\n",
" 4.952579621422096 - 5.047814712266423im\n",
" 5.456673934482986 - 5.543628508147122im\n",
" ⋮\n",
" 46.49465270906219 - 46.50534789616018im\n",
" 46.99470928787974 - 47.00529129839747im\n",
" 47.49476468199356 - 47.50523588612103im\n",
" 47.99481892822597 - 48.005181622468555im\n",
" 48.49487206188903 - 48.505128472090405im\n",
" 48.99492411687428 - 49.00507640105976im\n",
" 49.494975379460364 - 49.50502563061513im\n",
" 49.99 - 50.01im\n",
" 0.0 + 0.0im"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"method2(100, ComplexF64(1.0, 1.0))"
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"100-element Vector{ComplexF64}:\n",
" 0.8123382644430177 - 1.2103254935120225im\n",
" 1.3618993272451057 - 1.6471440230163505im\n",
" 1.8912072404172218 - 2.113276215698099im\n",
" 2.410392314803969 - 2.5921488992550263im\n",
" 2.92387985431671 - 3.0776974617009216im\n",
" 3.4338634265187062 - 3.567182086734182im\n",
" 3.9415447299890984 - 4.059183628220866im\n",
" 4.447634627099904 - 4.552892955977411im\n",
" 4.952579621422096 - 5.047814712266423im\n",
" 5.456673934482986 - 5.543628508147122im\n",
" ⋮\n",
" 46.49465270906219 - 46.50534789616018im\n",
" 46.99470928787974 - 47.00529129839747im\n",
" 47.49476468199356 - 47.50523588612103im\n",
" 47.99481892822597 - 48.005181622468555im\n",
" 48.49487206188903 - 48.505128472090405im\n",
" 48.99492411687428 - 49.00507640105976im\n",
" 49.494975379460364 - 49.50502563061513im\n",
" 49.99 - 50.01im\n",
" 0.0 + 0.0im"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"method3(100, ComplexF64(1.0, 1.0))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MethodInstance for Main.nanoconc.miemfp.bhmie(::Float64, ::ComplexF64, ::UInt32)\n",
" from bhmie(\u001b[90mx\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mrefrel\u001b[39m::\u001b[1mComplexF64\u001b[22m, \u001b[90mnang\u001b[39m::\u001b[1mUInt32\u001b[22m)\u001b[90m @\u001b[39m \u001b[90mMain.nanoconc.miemfp\u001b[39m \u001b[90m~/Programming/Work_Projects/nanoconc/src/\u001b[39m\u001b[90m\u001b[4mmiemfp.jl:141\u001b[24m\u001b[39m\n",
"Arguments\n",
" #self#\u001b[36m::Core.Const(Main.nanoconc.miemfp.bhmie)\u001b[39m\n",
" x\u001b[36m::Float64\u001b[39m\n",
" refrel\u001b[36m::ComplexF64\u001b[39m\n",
" nang\u001b[36m::UInt32\u001b[39m\n",
"Locals\n",
" @_5\u001b[36m::Int64\u001b[39m\n",
" val@_6\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
" val@_7\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
" val@_8\u001b[36m::Nothing\u001b[39m\n",
" val@_9\u001b[36m::Nothing\u001b[39m\n",
" val@_10\u001b[36m::Nothing\u001b[39m\n",
" qback\u001b[36m::Float64\u001b[39m\n",
" qext\u001b[36m::Float64\u001b[39m\n",
" qsca\u001b[36m::Float64\u001b[39m\n",
" x_sq\u001b[36m::Float64\u001b[39m\n",
" s2\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
" s1\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
" tau\u001b[36m::Vector{Float64}\u001b[39m\n",
" pi1\u001b[36m::Vector{Float64}\u001b[39m\n",
" pi0\u001b[36m::Vector{Float64}\u001b[39m\n",
" s2_2\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
" s2_1\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
" s1_2\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
" s1_1\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
" chi0\u001b[36m::Float64\u001b[39m\n",
" chi1\u001b[36m::Float64\u001b[39m\n",
" xi1\u001b[36m::ComplexF64\u001b[39m\n",
" p\u001b[36m::Float64\u001b[39m\n",
" psi1\u001b[36m::Float64\u001b[39m\n",
" psi0\u001b[36m::Float64\u001b[39m\n",
" d\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
" amu\u001b[36m::Vector{Float64}\u001b[39m\n",
" dang\u001b[36m::Float64\u001b[39m\n",
" nn\u001b[36m::UInt32\u001b[39m\n",
" nstop\u001b[36m::UInt32\u001b[39m\n",
" y\u001b[36m::ComplexF64\u001b[39m\n",
" @_36\u001b[33m\u001b[1m::Union{Nothing, Tuple{Int64, Int64}}\u001b[22m\u001b[39m\n",
" r#452\u001b[36m::UnitRange{Int64}\u001b[39m\n",
" i#453\u001b[36m::Int64\u001b[39m\n",
" n#454\u001b[36m::Int64\u001b[39m\n",
" i#455\u001b[36m::Int64\u001b[39m\n",
" i\u001b[36m::Int64\u001b[39m\n",
" @_42\u001b[33m\u001b[1m::Union{Nothing, Tuple{Int64, Int64}}\u001b[22m\u001b[39m\n",
" r#456\u001b[36m::StepRange{Int64, Int64}\u001b[39m\n",
" i#457\u001b[36m::Int64\u001b[39m\n",
" n#458\u001b[36m::Int64\u001b[39m\n",
" i#459\u001b[36m::Int64\u001b[39m\n",
" n@_47\u001b[36m::Int64\u001b[39m\n",
" n_over_y\u001b[36m::ComplexF64\u001b[39m\n",
" @_49\u001b[33m\u001b[1m::Union{Nothing, Tuple{Int64, Int64}}\u001b[22m\u001b[39m\n",
" r#460\u001b[36m::UnitRange{Int64}\u001b[39m\n",
" i#461\u001b[36m::Int64\u001b[39m\n",
" n#462\u001b[36m::Int64\u001b[39m\n",
" i#463\u001b[36m::Int64\u001b[39m\n",
" pi_\u001b[36m::Vector{Float64}\u001b[39m\n",
" bn\u001b[36m::ComplexF64\u001b[39m\n",
" an\u001b[36m::ComplexF64\u001b[39m\n",
" xi\u001b[36m::ComplexF64\u001b[39m\n",
" chi\u001b[36m::Float64\u001b[39m\n",
" psi\u001b[36m::Float64\u001b[39m\n",
" fn\u001b[36m::Float64\u001b[39m\n",
" n@_61\u001b[36m::Int64\u001b[39m\n",
" an_mult\u001b[36m::ComplexF64\u001b[39m\n",
" bn_mult\u001b[36m::ComplexF64\u001b[39m\n",
" four_over_x_sq\u001b[36m::Float64\u001b[39m\n",
" @_65\u001b[36m::Float64\u001b[39m\n",
"Body\u001b[36m::Tuple{Float64, Float64, Float64, Vector{ComplexF64}, Vector{ComplexF64}}\u001b[39m\n",
"\u001b[90m1 ──\u001b[39m Core.NewvarNode(:(@_5))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(val@_6))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(val@_7))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(val@_8))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(val@_9))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(val@_10))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(qback))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(qext))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(qsca))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(x_sq))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(s2))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(s1))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(tau))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(pi1))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(pi0))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(s2_2))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(s2_1))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(s1_2))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(s1_1))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(chi0))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(chi1))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(xi1))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(p))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(psi1))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(psi0))\n",
"\u001b[90m│ \u001b[39m Core.NewvarNode(:(d))\n",
"\u001b[90m│ \u001b[39m %27 = Main.nanoconc.miemfp.Tuple\u001b[36m::Core.Const(Tuple)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %28 = Main.nanoconc.miemfp.Float64\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %29 = Main.nanoconc.miemfp.Float64\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %30 = Main.nanoconc.miemfp.Float64\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %31 = Core.apply_type(Main.nanoconc.miemfp.Array, Main.nanoconc.miemfp.ComplexF64, 1)\u001b[36m::Core.Const(Vector{ComplexF64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %32 = Core.apply_type(Main.nanoconc.miemfp.Array, Main.nanoconc.miemfp.ComplexF64, 1)\u001b[36m::Core.Const(Vector{ComplexF64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %33 = Core.apply_type(%27, %28, %29, %30, %31, %32)\u001b[36m::Core.Const(Tuple{Float64, Float64, Float64, Vector{ComplexF64}, Vector{ComplexF64}})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %34 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %35 = Base.getproperty(%34, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %36 = (%35)(x, refrel)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %37 = Base.convert(Main.nanoconc.miemfp.ComplexF64, %36)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (y = Core.typeassert(%37, Main.nanoconc.miemfp.ComplexF64))\n",
"\u001b[90m│ \u001b[39m %39 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %40 = Base.getproperty(%39, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %41 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %42 = Base.getproperty(%41, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %43 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %44 = Base.getproperty(%43, :cbrt_fast)\u001b[36m::Core.Const(Base.FastMath.cbrt_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %45 = (%44)(x)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %46 = (%42)(4.0, %45)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %47 = (%40)(x, %46, 2.0)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %48 = Main.nanoconc.miemfp.round(%47)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %49 = Main.nanoconc.miemfp.UInt32(%48)\u001b[36m::UInt32\u001b[39m\n",
"\u001b[90m│ \u001b[39m %50 = Base.convert(Main.nanoconc.miemfp.UInt32, %49)\u001b[36m::UInt32\u001b[39m\n",
"\u001b[90m│ \u001b[39m (nstop = Core.typeassert(%50, Main.nanoconc.miemfp.UInt32))\n",
"\u001b[90m│ \u001b[39m %52 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %53 = Base.getproperty(%52, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %54 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %55 = Base.getproperty(%54, :max_fast)\u001b[36m::Core.Const(Base.FastMath.max_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %56 = nstop\u001b[36m::UInt32\u001b[39m\n",
"\u001b[90m│ \u001b[39m %57 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %58 = Base.getproperty(%57, :abs_fast)\u001b[36m::Core.Const(Base.FastMath.abs_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %59 = (%58)(y)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %60 = (%55)(%56, %59)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %61 = (%53)(%60, 14)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %62 = Main.nanoconc.miemfp.round(%61)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %63 = Main.nanoconc.miemfp.UInt32(%62)\u001b[36m::UInt32\u001b[39m\n",
"\u001b[90m│ \u001b[39m %64 = Base.convert(Main.nanoconc.miemfp.UInt32, %63)\u001b[36m::UInt32\u001b[39m\n",
"\u001b[90m│ \u001b[39m (nn = Core.typeassert(%64, Main.nanoconc.miemfp.UInt32))\n",
"\u001b[90m│ \u001b[39m %66 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %67 = Base.getproperty(%66, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %68 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %69 = Base.getproperty(%68, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %70 = (%69)(nang, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %71 = Main.nanoconc.miemfp.Float64(%70)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %72 = (%67)(1.570796327, %71)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %73 = Base.convert(Main.nanoconc.miemfp.Float64, %72)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (dang = Core.typeassert(%73, Main.nanoconc.miemfp.Float64))\n",
"\u001b[90m│ \u001b[39m %75 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Vector{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %76 = Main.nanoconc.miemfp.undef\u001b[36m::Core.Const(UndefInitializer())\u001b[39m\n",
"\u001b[90m│ \u001b[39m (amu = (%75)(%76, nang))\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m %79 = (1:nang)\u001b[36m::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %80 = Core.apply_type(Main.nanoconc.miemfp.UnitRange, Main.nanoconc.miemfp.Int64)\u001b[36m::Core.Const(UnitRange{Int64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %81 = Core.typeassert(%79, %80)\u001b[36m::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m (r#452 = %81)\n",
"\u001b[90m│ \u001b[39m %83 = Base.simd_outer_range\u001b[36m::Core.Const(Base.SimdLoop.simd_outer_range)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %84 = (%83)(r#452::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64]))\u001b[36m::Core.Const(0:0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (@_36 = Base.iterate(%84))\n",
"\u001b[90m│ \u001b[39m %86 = (@_36::Core.Const((0, 0)) === nothing)\u001b[36m::Core.Const(false)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %87 = Base.not_int(%86)\u001b[36m::Core.Const(true)\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #8 if not %87\n",
"\u001b[90m2 ──\u001b[39m %89 = @_36\u001b[36m::Core.Const((0, 0))\u001b[39m\n",
"\u001b[90m│ \u001b[39m (i#453 = Core.getfield(%89, 1))\n",
"\u001b[90m│ \u001b[39m %91 = Core.getfield(%89, 2)\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %92 = Base.simd_inner_length\u001b[36m::Core.Const(Base.SimdLoop.simd_inner_length)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %93 = r#452\u001b[36m::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %94 = (%92)(%93, i#453::Core.Const(0))\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (n#454 = %94)\n",
"\u001b[90m│ \u001b[39m %96 = Main.nanoconc.miemfp.zero(n#454)\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %97 = (%96 < n#454)\u001b[36m::Bool\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #6 if not %97\n",
"\u001b[90m3 ──\u001b[39m %99 = Main.nanoconc.miemfp.zero(n#454)\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m└───\u001b[39m (i#455 = %99)\n",
"\u001b[90m4 ┄─\u001b[39m %101 = (i#455 < n#454)\u001b[36m::Bool\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #6 if not %101\n",
"\u001b[90m5 ──\u001b[39m %103 = Base.simd_index\u001b[36m::Core.Const(Base.SimdLoop.simd_index)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %104 = r#452\u001b[36m::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %105 = i#453\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (i = (%103)(%104, %105, i#455))\n",
"\u001b[90m│ \u001b[39m %107 = Base"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
".FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %108 = Base.getproperty(%107, :cos_fast)\u001b[36m::Core.Const(Base.FastMath.cos_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %109 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %110 = Base.getproperty(%109, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %111 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %112 = Base.getproperty(%111, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %113 = Main.nanoconc.miemfp.Float64(i)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %114 = (%112)(%113, 1.0)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %115 = (%110)(%114, dang)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %116 = (%108)(%115)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m Base.setindex!(amu, %116, i)\n",
"\u001b[90m│ \u001b[39m (i#455 = i#455 + 1)\n",
"\u001b[90m│ \u001b[39m $(Expr(:loopinfo, Symbol(\"julia.simdloop\"), nothing))\n",
"\u001b[90m└───\u001b[39m goto #4\n",
"\u001b[90m6 ┄─\u001b[39m (@_36 = Base.iterate(%84, %91))\n",
"\u001b[90m│ \u001b[39m %122 = (@_36::Core.Const(nothing) === nothing)\u001b[36m::Core.Const(true)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %123 = Base.not_int(%122)\u001b[36m::Core.Const(false)\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #8 if not %123\n",
"\u001b[90m7 ──\u001b[39m Core.Const(:(goto %89))\n",
"\u001b[90m8 ┄─\u001b[39m (val@_10 = Main.nanoconc.miemfp.nothing)\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m val@_10\n",
"\u001b[90m│ \u001b[39m %129 = Main.nanoconc.miemfp.ComplexF64(0.0, 0.0)\u001b[36m::Core.Const(0.0 + 0.0im)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %130 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %131 = Base.getproperty(%130, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %132 = nn\u001b[36m::UInt32\u001b[39m\n",
"\u001b[90m│ \u001b[39m %133 = (%131)(%132, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %134 = Main.nanoconc.miemfp.fill(%129, %133)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %135 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.ComplexF64)\u001b[36m::Core.Const(Vector{ComplexF64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %136 = Base.convert(%135, %134)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (d = Core.typeassert(%136, %135))\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m %139 = (nn:-1:2)\u001b[36m::Core.PartialStruct(StepRange{Int64, Int64}, Any[Int64, Core.Const(-1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %140 = Core.apply_type(Main.nanoconc.miemfp.StepRange, Main.nanoconc.miemfp.Int64, Main.nanoconc.miemfp.Int64)\u001b[36m::Core.Const(StepRange{Int64, Int64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %141 = Core.typeassert(%139, %140)\u001b[36m::Core.PartialStruct(StepRange{Int64, Int64}, Any[Int64, Core.Const(-1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m (r#456 = %141)\n",
"\u001b[90m│ \u001b[39m %143 = Base.simd_outer_range\u001b[36m::Core.Const(Base.SimdLoop.simd_outer_range)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %144 = (%143)(r#456::Core.PartialStruct(StepRange{Int64, Int64}, Any[Int64, Core.Const(-1), Int64]))\u001b[36m::Core.Const(0:0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (@_42 = Base.iterate(%144))\n",
"\u001b[90m│ \u001b[39m %146 = (@_42::Core.Const((0, 0)) === nothing)\u001b[36m::Core.Const(false)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %147 = Base.not_int(%146)\u001b[36m::Core.Const(true)\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #15 if not %147\n",
"\u001b[90m9 ──\u001b[39m %149 = @_42\u001b[36m::Core.Const((0, 0))\u001b[39m\n",
"\u001b[90m│ \u001b[39m (i#457 = Core.getfield(%149, 1))\n",
"\u001b[90m│ \u001b[39m %151 = Core.getfield(%149, 2)\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %152 = Base.simd_inner_length\u001b[36m::Core.Const(Base.SimdLoop.simd_inner_length)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %153 = r#456\u001b[36m::Core.PartialStruct(StepRange{Int64, Int64}, Any[Int64, Core.Const(-1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %154 = (%152)(%153, i#457::Core.Const(0))\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (n#458 = %154)\n",
"\u001b[90m│ \u001b[39m %156 = Main.nanoconc.miemfp.zero(n#458)\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %157 = (%156 < n#458)\u001b[36m::Bool\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #13 if not %157\n",
"\u001b[90m10 ─\u001b[39m %159 = Main.nanoconc.miemfp.zero(n#458)\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m└───\u001b[39m (i#459 = %159)\n",
"\u001b[90m11 ┄\u001b[39m %161 = (i#459 < n#458)\u001b[36m::Bool\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #13 if not %161\n",
"\u001b[90m12 ─\u001b[39m %163 = Base.simd_index\u001b[36m::Core.Const(Base.SimdLoop.simd_index)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %164 = r#456\u001b[36m::Core.PartialStruct(StepRange{Int64, Int64}, Any[Int64, Core.Const(-1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %165 = i#457\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (n@_47 = (%163)(%164, %165, i#459))\n",
"\u001b[90m│ \u001b[39m %167 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %168 = Base.getproperty(%167, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %169 = n@_47\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %170 = (%168)(%169, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %171 = Base.getindex(d, %170)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m Core.typeassert(%171, Main.nanoconc.miemfp.ComplexF64)\n",
"\u001b[90m│ \u001b[39m %173 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %174 = Base.getproperty(%173, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %175 = n@_47\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %176 = (%174)(%175, y)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (n_over_y = %176)\n",
"\u001b[90m│ \u001b[39m %178 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %179 = Base.getproperty(%178, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %180 = n_over_y\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %181 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %182 = Base.getproperty(%181, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %183 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %184 = Base.getproperty(%183, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %185 = Base.getindex(d, n@_47)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %186 = (%184)(%185, n_over_y)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %187 = (%182)(1.0, %186)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %188 = (%179)(%180, %187)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m Base.setindex!(d, %188, %170)\n",
"\u001b[90m│ \u001b[39m (i#459 = i#459 + 1)\n",
"\u001b[90m│ \u001b[39m $(Expr(:loopinfo, Symbol(\"julia.simdloop\"), nothing))\n",
"\u001b[90m└───\u001b[39m goto #11\n",
"\u001b[90m13 ┄\u001b[39m (@_42 = Base.iterate(%144, %151))\n",
"\u001b[90m│ \u001b[39m %194 = (@_42::Core.Const(nothing) === nothing)\u001b[36m::Core.Const(true)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %195 = Base.not_int(%194)\u001b[36m::Core.Const(false)\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #15 if not %195\n",
"\u001b[90m14 ─\u001b[39m Core.Const(:(goto %149))\n",
"\u001b[90m15 ┄\u001b[39m (val@_9 = Main.nanoconc.miemfp.nothing)\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m val@_9\n",
"\u001b[90m│ \u001b[39m %201 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %202 = Base.getproperty(%201, :cos_fast)\u001b[36m::Core.Const(Base.FastMath.cos_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (psi0 = (%202)(x))\n",
"\u001b[90m│ \u001b[39m %204 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %205 = Base.getproperty(%204, :sin_fast)\u001b[36m::Core.Const(Base.FastMath.sin_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (psi1 = (%205)(x))\n",
"\u001b[90m│ \u001b[39m %207 = Base.convert(Main.nanoconc.miemfp.Float64, 0.0)\u001b[36m::Core.Const(0.0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (qsca = Core.typeassert(%207, Main.nanoconc.miemfp.Float64))\n",
"\u001b[90m│ \u001b[39m %209 = Base.convert(Main.nanoconc.miemfp.Float64, -1.0)\u001b[36m::Core.Const(-1.0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (p = Core.typeassert(%209, Main.nanoconc.miemfp.Float64))\n",
"\u001b[90m│ \u001b[39m %211 = psi1\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %212 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %213 = Base.getproperty(%212, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %214 = (%213)(psi0)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (xi1 = Main.nanoconc.miemfp.ComplexF64(%211, %214))\n",
"\u001b[90m│ \u001b[39m (chi1 = psi0)\n",
"\u001b[90m│ \u001b[39m %217 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %218 = Base.getproperty(%217, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (chi0 = (%218)(psi1))\n",
"\u001b[90m│ \u001b[39m (s1_1 = Main.nanoconc.miemfp.zeros(Main.nanoconc.miemfp.ComplexF64, nang))\n",
"\u001b[90m│ \u001b[39m (s1_2 = Main.nanoconc.miemfp.zeros(Main.nanoconc.miemfp.ComplexF64, nang))\n",
"\u001b[90m│ \u001b[39m (s2_1 = Main.nanoconc.miemfp.zeros(Main.nanoconc.miemfp.ComplexF64, nang))\n",
"\u001b[90m│ \u001b[39m (s2_2 = Main.nanoconc.miemfp.zeros(Main.nanoconc.miemfp.ComplexF64, nang))\n",
"\u001b[90m│ \u001b[39m %224 = Main.nanoconc.miemfp.zeros(nang)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %225 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Vector{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %226 = Base.convert(%225, %224)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (pi0 = Core.typeassert(%226, %225))\n",
"\u001b[90m│ \u001b[39m %228 = Main.nanoconc.miemfp.ones(nang)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %229 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Vector{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %230 = Base.convert(%229, %228)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (pi1 = Core.typeassert(%230, %229))\n",
"\u001b[90m│ \u001b[39m %232 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Vector{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %233 = Main.nanoconc.miemfp.similar(%232, nang)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %234 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Vector{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %235 = Base.convert(%234, %233)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (tau = Core.typeassert(%235, %234))\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m %238 = (1:nstop)\u001b[36m::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %239 = Core.apply_type(Main.nanoconc.miemfp.UnitRange, Main.nanoconc.miemfp.Int64)\u001b[36m::Core.Const(UnitRange{Int64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %240 = Core.typeassert(%238, %239)\u001b[36m::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"(r#460 = %240)\n",
"\u001b[90m│ \u001b[39m %242 = Base.simd_outer_range\u001b[36m::Core.Const(Base.SimdLoop.simd_outer_range)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %243 = (%242)(r#460::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64]))\u001b[36m::Core.Const(0:0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (@_49 = Base.iterate(%243))\n",
"\u001b[90m│ \u001b[39m %245 = (@_49::Core.Const((0, 0)) === nothing)\u001b[36m::Core.Const(false)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %246 = Base.not_int(%245)\u001b[36m::Core.Const(true)\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #25 if not %246\n",
"\u001b[90m16 ─\u001b[39m %248 = @_49\u001b[36m::Core.Const((0, 0))\u001b[39m\n",
"\u001b[90m│ \u001b[39m (i#461 = Core.getfield(%248, 1))\n",
"\u001b[90m│ \u001b[39m %250 = Core.getfield(%248, 2)\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %251 = Base.simd_inner_length\u001b[36m::Core.Const(Base.SimdLoop.simd_inner_length)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %252 = r#460\u001b[36m::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %253 = (%251)(%252, i#461::Core.Const(0))\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (n#462 = %253)\n",
"\u001b[90m│ \u001b[39m %255 = Main.nanoconc.miemfp.zero(n#462)\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %256 = (%255 < n#462)\u001b[36m::Bool\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #23 if not %256\n",
"\u001b[90m17 ─\u001b[39m %258 = Main.nanoconc.miemfp.zero(n#462)\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m└───\u001b[39m (i#463 = %258)\n",
"\u001b[90m18 ┄\u001b[39m %260 = (i#463 < n#462)\u001b[36m::Bool\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #23 if not %260\n",
"\u001b[90m19 ─\u001b[39m %262 = Base.simd_index\u001b[36m::Core.Const(Base.SimdLoop.simd_index)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %263 = r#460\u001b[36m::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %264 = i#461\u001b[36m::Core.Const(0)\u001b[39m\n",
"\u001b[90m│ \u001b[39m (n@_61 = (%262)(%263, %264, i#463))\n",
"\u001b[90m│ \u001b[39m %266 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %267 = Base.getproperty(%266, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %268 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %269 = Base.getproperty(%268, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %270 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %271 = Base.getproperty(%270, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %272 = (%271)(2, n@_61)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %273 = (%269)(%272, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %274 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %275 = Base.getproperty(%274, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %276 = n@_61\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %277 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %278 = Base.getproperty(%277, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %279 = n@_61\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %280 = (%278)(%279, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %281 = (%275)(%276, %280)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (fn = (%267)(%273, %281))\n",
"\u001b[90m│ \u001b[39m %283 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %284 = Base.getproperty(%283, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %285 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %286 = Base.getproperty(%285, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %287 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %288 = Base.getproperty(%287, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %289 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %290 = Base.getproperty(%289, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %291 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %292 = Base.getproperty(%291, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %293 = (%292)(2, n@_61)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %294 = (%290)(%293, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %295 = (%288)(%294, psi1)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %296 = (%286)(%295, x)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (psi = (%284)(%296, psi0))\n",
"\u001b[90m│ \u001b[39m %298 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %299 = Base.getproperty(%298, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %300 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %301 = Base.getproperty(%300, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %302 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %303 = Base.getproperty(%302, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %304 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %305 = Base.getproperty(%304, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %306 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %307 = Base.getproperty(%306, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %308 = (%307)(2, n@_61)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %309 = (%305)(%308, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %310 = (%303)(%309, chi1)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %311 = (%301)(%310, x)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (chi = (%299)(%311, chi0))\n",
"\u001b[90m│ \u001b[39m %313 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %314 = Base.getproperty(%313, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %315 = psi\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %316 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %317 = Base.getproperty(%316, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %318 = chi\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %319 = (%317)(%318, Main.nanoconc.miemfp.im)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (xi = (%314)(%315, %319))\n",
"\u001b[90m│ \u001b[39m %321 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %322 = Base.getproperty(%321, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %323 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %324 = Base.getproperty(%323, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %325 = Base.getindex(d, n@_61)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %326 = (%324)(%325, refrel)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %327 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %328 = Base.getproperty(%327, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %329 = n@_61\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %330 = (%328)(%329, x)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %331 = (%322)(%326, %330)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %332 = Base.convert(Main.nanoconc.miemfp.ComplexF64, %331)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (an_mult = Core.typeassert(%332, Main.nanoconc.miemfp.ComplexF64))\n",
"\u001b[90m│ \u001b[39m %334 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %335 = Base.getproperty(%334, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %336 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %337 = Base.getproperty(%336, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %338 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %339 = Base.getproperty(%338, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %340 = an_mult\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %341 = (%339)(%340, psi)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %342 = (%337)(%341, psi1)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %343 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %344 = Base.getproperty(%343, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %345 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %346 = Base.getproperty(%345, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %347 = an_mult\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %348 = (%346)(%347, xi)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %349 = (%344)(%348, xi1)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %350 = (%335)(%342, %349)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %351 = Base.convert(Main.nanoconc.miemfp.ComplexF64, %350)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (an = Core.typeassert(%351, Main.nanoconc.miemfp.ComplexF64))\n",
"\u001b[90m│ \u001b[39m %353 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %354 = Base.getproperty(%353, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %355 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %356 = Base.getproperty(%355, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %357 = Base.getindex(d, n@_61)\u001b[36m::ComplexF64\u001b[39m"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: replacing module nanoconc.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"\u001b[90m│ \u001b[39m %358 = (%356)(refrel, %357)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %359 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %360 = Base.getproperty(%359, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %361 = n@_61\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %362 = (%360)(%361, x)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %363 = (%354)(%358, %362)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %364 = Base.convert(Main.nanoconc.miemfp.ComplexF64, %363)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (bn_mult = Core.typeassert(%364, Main.nanoconc.miemfp.ComplexF64))\n",
"\u001b[90m│ \u001b[39m %366 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %367 = Base.getproperty(%366, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %368 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %369 = Base.getproperty(%368, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %370 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %371 = Base.getproperty(%370, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %372 = bn_mult\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %373 = (%371)(%372, psi)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %374 = (%369)(%373, psi1)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %375 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %376 = Base.getproperty(%375, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %377 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %378 = Base.getproperty(%377, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %379 = bn_mult\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %380 = (%378)(%379, xi)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %381 = (%376)(%380, xi1)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %382 = (%367)(%374, %381)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %383 = Base.convert(Main.nanoconc.miemfp.ComplexF64, %382)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (bn = Core.typeassert(%383, Main.nanoconc.miemfp.ComplexF64))\n",
"\u001b[90m│ \u001b[39m %385 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %386 = Base.getproperty(%385, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %387 = qsca\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %388 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %389 = Base.getproperty(%388, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %390 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %391 = Base.getproperty(%390, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %392 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %393 = Base.getproperty(%392, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %394 = (%393)(2, n@_61)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %395 = (%391)(%394, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %396 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %397 = Base.getproperty(%396, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %398 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %399 = Base.getproperty(%398, :pow_fast)\u001b[36m::Core.Const(Base.FastMath.pow_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %400 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %401 = Base.getproperty(%400, :abs_fast)\u001b[36m::Core.Const(Base.FastMath.abs_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %402 = (%401)(an)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %403 = (%399)(%402, Val{2}())\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %404 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %405 = Base.getproperty(%404, :pow_fast)\u001b[36m::Core.Const(Base.FastMath.pow_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %406 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %407 = Base.getproperty(%406, :abs_fast)\u001b[36m::Core.Const(Base.FastMath.abs_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %408 = (%407)(bn)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %409 = (%405)(%408, Val{2}())\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %410 = (%397)(%403, %409)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %411 = (%389)(%395, %410)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %412 = (%386)(%387, %411)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %413 = Base.convert(Main.nanoconc.miemfp.Float64, %412)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (qsca = Core.typeassert(%413, Main.nanoconc.miemfp.Float64))\n",
"\u001b[90m│ \u001b[39m (pi_ = pi1)\n",
"\u001b[90m│ \u001b[39m %416 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %417 = Base.getproperty(%416, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %418 = Main.nanoconc.miemfp.:*\u001b[36m::Core.Const(*)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %419 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %420 = Base.getproperty(%419, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %421 = n@_61\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %422 = (%420)(%421, amu)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %423 = Base.broadcasted(%418, %422, pi_)\u001b[36m::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Nothing, typeof(*), Tuple{Vector{Float64}, Vector{Float64}}}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %424 = Base.materialize(%423)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %425 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %426 = Base.getproperty(%425, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %427 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %428 = Base.getproperty(%427, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %429 = n@_61\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %430 = (%428)(%429, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %431 = (%426)(%430, pi0)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %432 = (%417)(%424, %431)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %433 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Vector{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %434 = Base.convert(%433, %432)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (tau = Core.typeassert(%434, %433))\n",
"\u001b[90m│ \u001b[39m %436 = Main.nanoconc.miemfp.isodd(n@_61)\u001b[36m::Bool\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #21 if not %436\n",
"\u001b[90m20 ─\u001b[39m (@_65 = 1.0)\n",
"\u001b[90m└───\u001b[39m goto #22\n",
"\u001b[90m21 ─\u001b[39m (@_65 = -1.0)\n",
"\u001b[90m22 ┄\u001b[39m %441 = @_65\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %442 = Base.convert(Main.nanoconc.miemfp.Float64, %441)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (p = Core.typeassert(%442, Main.nanoconc.miemfp.Float64))\n",
"\u001b[90m│ \u001b[39m %444 = s1_1\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %445 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.ComplexF64)\u001b[36m::Core.Const(Vector{ComplexF64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %446 = Core.typeassert(%444, %445)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %447 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %448 = Base.getproperty(%447, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %449 = fn\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %450 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %451 = Base.getproperty(%450, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %452 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %453 = Base.getproperty(%452, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %454 = an\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %455 = (%453)(%454, pi_)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %456 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %457 = Base.getproperty(%456, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %458 = bn\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %459 = (%457)(%458, tau)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %460 = (%451)(%455, %459)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %461 = (%448)(%449, %460)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (s1_1 = %446 + %461)\n",
"\u001b[90m│ \u001b[39m %463 = s1_2\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %464 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.ComplexF64)\u001b[36m::Core.Const(Vector{ComplexF64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %465 = Core.typeassert(%463, %464)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %466 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %467 = Base.getproperty(%466, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %468 = fn\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %469 = p\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %470 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %471 = Base.getproperty(%470, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %472 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %473 = Base.getproperty(%472, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %474 = an\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %475 = (%473)(%474, pi_)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %476 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %477 = Base.getproperty(%476, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %478 = bn\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %479 = (%477)(%478, tau)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %480 = (%471)(%475, %479)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %481 = (%467)(%468, %469, %480)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (s1_2 = %465 + %481)\n",
"\u001b[90m│ \u001b[39m %483 = s2_1\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %484 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.ComplexF64)\u001b[36m::Core.Const(Vector{ComplexF64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %485 = Core.typeassert(%483, %484)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %486 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %487 = Base.getproperty(%486, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %488 = fn\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %489 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[90m│ \u001b[39m %490 = Base.getproperty(%489, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %491 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %492 = Base.getproperty(%491, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %493 = an\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %494 = (%492)(%493, tau)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %495 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %496 = Base.getproperty(%495, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %497 = bn\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %498 = (%496)(%497, pi_)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %499 = (%490)(%494, %498)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %500 = (%487)(%488, %499)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (s2_1 = %485 + %500)\n",
"\u001b[90m│ \u001b[39m %502 = s2_2\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %503 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.ComplexF64)\u001b[36m::Core.Const(Vector{ComplexF64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %504 = Core.typeassert(%502, %503)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %505 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %506 = Base.getproperty(%505, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %507 = fn\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %508 = p\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %509 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %510 = Base.getproperty(%509, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %511 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %512 = Base.getproperty(%511, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %513 = bn\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %514 = (%512)(%513, pi_)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %515 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %516 = Base.getproperty(%515, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %517 = an\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %518 = (%516)(%517, tau)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %519 = (%510)(%514, %518)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %520 = (%506)(%507, %508, %519)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (s2_2 = %504 + %520)\n",
"\u001b[90m│ \u001b[39m (psi0 = psi1)\n",
"\u001b[90m│ \u001b[39m (chi0 = chi1)\n",
"\u001b[90m│ \u001b[39m (psi1 = psi)\n",
"\u001b[90m│ \u001b[39m (chi1 = chi)\n",
"\u001b[90m│ \u001b[39m %526 = psi1\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %527 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %528 = Base.getproperty(%527, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %529 = (%528)(chi1)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (xi1 = Main.nanoconc.miemfp.ComplexF64(%526, %529))\n",
"\u001b[90m│ \u001b[39m %531 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %532 = Base.getproperty(%531, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %533 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %534 = Base.getproperty(%533, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %535 = Main.nanoconc.miemfp.:*\u001b[36m::Core.Const(*)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %536 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %537 = Base.getproperty(%536, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %538 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %539 = Base.getproperty(%538, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %540 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %541 = Base.getproperty(%540, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %542 = (%541)(2, n@_61)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %543 = (%539)(%542, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %544 = (%537)(%543, amu)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %545 = Base.broadcasted(%535, %544, pi_)\u001b[36m::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Nothing, typeof(*), Tuple{Vector{Float64}, Vector{Float64}}}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %546 = Base.materialize(%545)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %547 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %548 = Base.getproperty(%547, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %549 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %550 = Base.getproperty(%549, :add_fast)\u001b[36m::Core.Const(Base.FastMath.add_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %551 = n@_61\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %552 = (%550)(%551, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %553 = (%548)(%552, pi0)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %554 = (%534)(%546, %553)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %555 = (%532)(%554, n@_61)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %556 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Vector{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %557 = Base.convert(%556, %555)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (pi1 = Core.typeassert(%557, %556))\n",
"\u001b[90m│ \u001b[39m %559 = pi_\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %560 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.Float64)\u001b[36m::Core.Const(Vector{Float64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %561 = Base.convert(%560, %559)\u001b[36m::Vector{Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (pi0 = Core.typeassert(%561, %560))\n",
"\u001b[90m│ \u001b[39m (i#463 = i#463 + 1)\n",
"\u001b[90m│ \u001b[39m $(Expr(:loopinfo, Symbol(\"julia.simdloop\"), nothing))\n",
"\u001b[90m└───\u001b[39m goto #18\n",
"\u001b[90m23 ┄\u001b[39m (@_49 = Base.iterate(%243, %250))\n",
"\u001b[90m│ \u001b[39m %567 = (@_49::Core.Const(nothing) === nothing)\u001b[36m::Core.Const(true)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %568 = Base.not_int(%567)\u001b[36m::Core.Const(false)\u001b[39m\n",
"\u001b[90m└───\u001b[39m goto #25 if not %568\n",
"\u001b[90m24 ─\u001b[39m Core.Const(:(goto %248))\n",
"\u001b[90m25 ┄\u001b[39m (val@_8 = Main.nanoconc.miemfp.nothing)\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m val@_8\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m %575 = s1_1\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %576 = s1_2\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %577 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %578 = Base.getproperty(%577, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %579 = Base.lastindex(s1_2)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %580 = (%578)(%579, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %581 = (1:%580)\u001b[36m::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %582 = Base.getindex(%576, %581)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %583 = Main.nanoconc.miemfp.reverse(%582)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %584 = Main.nanoconc.miemfp.vcat(%575, %583)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %585 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.ComplexF64)\u001b[36m::Core.Const(Vector{ComplexF64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %586 = Base.convert(%585, %584)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (s1 = Core.typeassert(%586, %585))\n",
"\u001b[90m│ \u001b[39m (val@_7 = %584)\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m val@_7\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m %592 = s2_1\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %593 = s2_2\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %594 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %595 = Base.getproperty(%594, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %596 = Base.lastindex(s2_2)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %597 = (%595)(%596, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %598 = (1:%597)\u001b[36m::Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %599 = Base.getindex(%593, %598)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %600 = Main.nanoconc.miemfp.reverse(%599)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %601 = Main.nanoconc.miemfp.vcat(%592, %600)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %602 = Core.apply_type(Main.nanoconc.miemfp.Vector, Main.nanoconc.miemfp.ComplexF64)\u001b[36m::Core.Const(Vector{ComplexF64})\u001b[39m\n",
"\u001b[90m│ \u001b[39m %603 = Base.convert(%602, %601)\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m (s2 = Core.typeassert(%603, %602))\n",
"\u001b[90m│ \u001b[39m (val@_6 = %601)\n",
"\u001b[90m│ \u001b[39m nothing\n",
"\u001b[90m│ \u001b[39m val@_6\n",
"\u001b[90m│ \u001b[39m %608 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %609 = Base.getproperty(%608, :pow_fast)\u001b[36m::Core.Const(Base.FastMath.pow_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %610 = (%609)(x, "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Val{2}())\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %611 = Base.convert(Main.nanoconc.miemfp.Float64, %610)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (x_sq = Core.typeassert(%611, Main.nanoconc.miemfp.Float64))\n",
"\u001b[90m│ \u001b[39m %613 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %614 = Base.getproperty(%613, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %615 = qsca\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %616 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %617 = Base.getproperty(%616, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %618 = (%617)(2.0, x_sq)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %619 = (%614)(%615, %618)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %620 = Base.convert(Main.nanoconc.miemfp.Float64, %619)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (qsca = Core.typeassert(%620, Main.nanoconc.miemfp.Float64))\n",
"\u001b[90m│ \u001b[39m %622 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %623 = Base.getproperty(%622, :div_fast)\u001b[36m::Core.Const(Base.FastMath.div_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %624 = (%623)(4.0, x_sq)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %625 = Base.convert(Main.nanoconc.miemfp.Float64, %624)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (four_over_x_sq = Core.typeassert(%625, Main.nanoconc.miemfp.Float64))\n",
"\u001b[90m│ \u001b[39m %627 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %628 = Base.getproperty(%627, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %629 = four_over_x_sq\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %630 = Base.getindex(s1, 1)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %631 = Main.nanoconc.miemfp.real(%630)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %632 = (%628)(%629, %631)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %633 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %634 = Base.getproperty(%633, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %635 = four_over_x_sq\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %636 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %637 = Base.getproperty(%636, :pow_fast)\u001b[36m::Core.Const(Base.FastMath.pow_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %638 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %639 = Base.getproperty(%638, :abs_fast)\u001b[36m::Core.Const(Base.FastMath.abs_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %640 = s1\u001b[36m::Vector{ComplexF64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %641 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %642 = Base.getproperty(%641, :sub_fast)\u001b[36m::Core.Const(Base.FastMath.sub_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %643 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %644 = Base.getproperty(%643, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %645 = (%644)(2, nang)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %646 = (%642)(%645, 1)\u001b[36m::Int64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %647 = Base.getindex(%640, %646)\u001b[36m::ComplexF64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %648 = (%639)(%647)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %649 = (%637)(%648, Val{2}())\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %650 = (%634)(%635, %649)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %651 = Core.tuple(%632, %650)\u001b[36m::Tuple{Float64, Float64}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %652 = Base.indexed_iterate(%651, 1)\u001b[36m::Core.PartialStruct(Tuple{Float64, Int64}, Any[Float64, Core.Const(2)])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %653 = Core.getfield(%652, 1)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (@_5 = Core.getfield(%652, 2))\n",
"\u001b[90m│ \u001b[39m %655 = Base.indexed_iterate(%651, 2, @_5::Core.Const(2))\u001b[36m::Core.PartialStruct(Tuple{Float64, Int64}, Any[Float64, Core.Const(3)])\u001b[39m\n",
"\u001b[90m│ \u001b[39m %656 = Core.getfield(%655, 1)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %657 = Base.convert(Main.nanoconc.miemfp.Float64, %653)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (qext = Core.typeassert(%657, Main.nanoconc.miemfp.Float64))\n",
"\u001b[90m│ \u001b[39m %659 = Base.convert(Main.nanoconc.miemfp.Float64, %656)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m (qback = Core.typeassert(%659, Main.nanoconc.miemfp.Float64))\n",
"\u001b[90m│ \u001b[39m %661 = Core.tuple(qext, qsca, qback, s1, s2)\u001b[36m::Tuple{Float64, Float64, Float64, Vector{ComplexF64}, Vector{ComplexF64}}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %662 = Base.convert(%33, %661)\u001b[36m::Tuple{Float64, Float64, Float64, Vector{ComplexF64}, Vector{ComplexF64}}\u001b[39m\n",
"\u001b[90m│ \u001b[39m %663 = Core.typeassert(%662, %33)\u001b[36m::Tuple{Float64, Float64, Float64, Vector{ComplexF64}, Vector{ComplexF64}}\u001b[39m\n",
"\u001b[90m└───\u001b[39m return %663\n",
"\n"
]
}
],
"source": [
"include(\"src/nanoconc.jl\")\n",
"test_data = deserialize(\"test/data/Main.nanoconc.miemfp.bhmie.ser\")\n",
"args, kwargs = test_data[1][1]\n",
"@code_warntype nanoconc.miemfp.bhmie(args..., kwargs...)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MethodInstance for Main.nanoconc.quantumcalc.attencoeff(::Float64, ::Float64)\n",
" from attencoeff(\u001b[90mqext\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mr\u001b[39m::\u001b[1mFloat64\u001b[22m)\u001b[90m @\u001b[39m \u001b[90mMain.nanoconc.quantumcalc\u001b[39m \u001b[90m~/Programming/Work_Projects/nanoconc/src/\u001b[39m\u001b[90m\u001b[4mquantumcalc.jl:118\u001b[24m\u001b[39m\n",
"Arguments\n",
" #self#\u001b[36m::Core.Const(Main.nanoconc.quantumcalc.attencoeff)\u001b[39m\n",
" qext\u001b[36m::Float64\u001b[39m\n",
" r\u001b[36m::Float64\u001b[39m\n",
"Body\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m1 ─\u001b[39m %1 = Main.nanoconc.quantumcalc.Float64\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %2 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %3 = Base.getproperty(%2, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %4 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %5 = Base.getproperty(%4, :pow_fast)\u001b[36m::Core.Const(Base.FastMath.pow_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %6 = (%5)(r, Val{2}())\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %7 = (%3)(%6, qext, Main.nanoconc.quantumcalc.A_PI_LOG10_EULER_OVER_1000)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %8 = Base.convert(%1, %7)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %9 = Core.typeassert(%8, %1)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m└──\u001b[39m return %9\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: replacing module nanoconc.\n"
]
}
],
"source": [
"include(\"src/nanoconc.jl\")\n",
"test_data = deserialize(\"test/data/Main.nanoconc.quantumcalc.attencoeff.ser\")\n",
"test_data = test_data[1]\n",
"args, kwargs = test_data[1]\n",
"@code_warntype nanoconc.quantumcalc.attencoeff(args..., kwargs...)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MethodInstance for Main.nanoconc.quantumcalc.attentoabs(::Float64, ::Float64, ::Float64)\n",
" from attentoabs(\u001b[90mkappa\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mc\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90md0\u001b[39m::\u001b[1mFloat64\u001b[22m)\u001b[90m @\u001b[39m \u001b[90mMain.nanoconc.quantumcalc\u001b[39m \u001b[90m~/Programming/Work_Projects/nanoconc/src/\u001b[39m\u001b[90m\u001b[4mquantumcalc.jl:133\u001b[24m\u001b[39m\n",
"Arguments\n",
" #self#\u001b[36m::Core.Const(Main.nanoconc.quantumcalc.attentoabs)\u001b[39m\n",
" kappa\u001b[36m::Float64\u001b[39m\n",
" c\u001b[36m::Float64\u001b[39m\n",
" d0\u001b[36m::Float64\u001b[39m\n",
"Body\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m1 ─\u001b[39m %1 = Main.nanoconc.quantumcalc.Float64\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %2 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %3 = Base.getproperty(%2, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %4 = (%3)(kappa, c, d0)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %5 = Base.convert(%1, %4)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %6 = Core.typeassert(%5, %1)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m└──\u001b[39m return %6\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: replacing module nanoconc.\n"
]
}
],
"source": [
"include(\"src/nanoconc.jl\")\n",
"test_data = deserialize(\"test/data/Main.nanoconc.quantumcalc.attentoabs.ser\")\n",
"test_data = test_data[1]\n",
"args, kwargs = test_data[1]\n",
"@code_warntype nanoconc.quantumcalc.attentoabs(args..., kwargs...)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MethodInstance for Main.nanoconc.quantumcalc.numtomol(::Float64)\n",
" from numtomol(\u001b[90mn\u001b[39m::\u001b[1mFloat64\u001b[22m)\u001b[90m @\u001b[39m \u001b[90mMain.nanoconc.quantumcalc\u001b[39m \u001b[90m~/Programming/Work_Projects/nanoconc/src/\u001b[39m\u001b[90m\u001b[4mquantumcalc.jl:125\u001b[24m\u001b[39m\n",
"Arguments\n",
" #self#\u001b[36m::Core.Const(Main.nanoconc.quantumcalc.numtomol)\u001b[39m\n",
" n\u001b[36m::Float64\u001b[39m\n",
"Body\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m1 ─\u001b[39m %1 = Main.nanoconc.quantumcalc.Float64\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %2 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %3 = Base.getproperty(%2, :mul_fast)\u001b[36m::Core.Const(Base.FastMath.mul_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %4 = (%3)(n, Main.nanoconc.quantumcalc.NUM_TO_MOL_CONV)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %5 = Base.convert(%1, %4)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %6 = Core.typeassert(%5, %1)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m└──\u001b[39m return %6\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: replacing module nanoconc.\n"
]
}
],
"source": [
"include(\"src/nanoconc.jl\")\n",
"test_data = deserialize(\"test/data/Main.nanoconc.quantumcalc.numtomol.ser\")\n",
"test_data = test_data[1]\n",
"args, kwargs = test_data[1]\n",
"@code_warntype nanoconc.quantumcalc.numtomol(args..., kwargs...)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MethodInstance for Main.nanoconc.quantumcalc.predictabs(::Float64, ::Float64, ::Float64, ::Float64)\n",
" from predictabs(\u001b[90mqext\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mavgr\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90mppml\u001b[39m::\u001b[1mFloat64\u001b[22m, \u001b[90ml\u001b[39m::\u001b[1mFloat64\u001b[22m)\u001b[90m @\u001b[39m \u001b[90mMain.nanoconc.quantumcalc\u001b[39m \u001b[90m~/Programming/Work_Projects/nanoconc/src/\u001b[39m\u001b[90m\u001b[4mquantumcalc.jl:141\u001b[24m\u001b[39m\n",
"Arguments\n",
" #self#\u001b[36m::Core.Const(Main.nanoconc.quantumcalc.predictabs)\u001b[39m\n",
" qext\u001b[36m::Float64\u001b[39m\n",
" avgr\u001b[36m::Float64\u001b[39m\n",
" ppml\u001b[36m::Float64\u001b[39m\n",
" l\u001b[36m::Float64\u001b[39m\n",
"Body\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m1 ─\u001b[39m %1 = Main.nanoconc.quantumcalc.Float64\u001b[36m::Core.Const(Float64)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %2 = Base.FastMath\u001b[36m::Core.Const(Base.FastMath)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %3 = Base.getproperty(%2, :log10_fast)\u001b[36m::Core.Const(Base.FastMath.log10_fast)\u001b[39m\n",
"\u001b[90m│ \u001b[39m %4 = Main.nanoconc.quantumcalc.attencoeff(qext, avgr)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %5 = Main.nanoconc.quantumcalc.numtomol(ppml)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %6 = Main.nanoconc.quantumcalc.attentoabs(%4, %5, l)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %7 = (%3)(%6)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %8 = Base.convert(%1, %7)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m│ \u001b[39m %9 = Core.typeassert(%8, %1)\u001b[36m::Float64\u001b[39m\n",
"\u001b[90m└──\u001b[39m return %9\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: replacing module nanoconc.\n"
]
}
],
"source": [
"include(\"src/nanoconc.jl\")\n",
"test_data = deserialize(\"test/data/Main.nanoconc.quantumcalc.predictabs.ser\")\n",
"test_data = test_data[1]\n",
"args, kwargs = test_data[1]\n",
"@code_warntype nanoconc.quantumcalc.predictabs(args..., kwargs...)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"f2 (generic function with 1 method)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"function f1(n::Float64)::Float64\n",
" n * (n + 1)\n",
"end\n",
"\n",
"function f2(n::Float64)::Float64\n",
" n^2 + n\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Float64(1)"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"ename": "OutOfMemoryError",
"evalue": "OutOfMemoryError()",
"output_type": "error",
"traceback": [
"OutOfMemoryError()\n",
"\n",
"Stacktrace:\n",
" [1] collect(itr::Base.Generator{UnitRange{Int64}, var\"#15#16\"})\n",
" @ Base ./array.jl:0\n",
" [2] top-level scope\n",
" @ ~/Programming/Work_Projects/nanoconc/scratch.ipynb:1"
]
}
],
"source": [
"n_range = [Float64(i) for i in 1:1000000000000]"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0.003103 seconds (4 allocations: 7.629 MiB)\n"
]
},
{
"data": {
"text/plain": [
"1000000-element Vector{Float64}:\n",
" 2.0\n",
" 6.0\n",
" 12.0\n",
" 20.0\n",
" 30.0\n",
" 42.0\n",
" 56.0\n",
" 72.0\n",
" 90.0\n",
" 110.0\n",
" ⋮\n",
" 9.99985000056e11\n",
" 9.99987000042e11\n",
" 9.9998900003e11\n",
" 9.9999100002e11\n",
" 9.99993000012e11\n",
" 9.99995000006e11\n",
" 9.99997000002e11\n",
" 9.99999e11\n",
" 1.000001e12"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"@time f1.(n_range)"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0.077378 seconds (4 allocations: 7.629 MiB, 89.50% gc time)\n"
]
},
{
"data": {
"text/plain": [
"1000000-element Vector{Float64}:\n",
" 2.0\n",
" 6.0\n",
" 12.0\n",
" 20.0\n",
" 30.0\n",
" 42.0\n",
" 56.0\n",
" 72.0\n",
" 90.0\n",
" 110.0\n",
" ⋮\n",
" 9.99985000056e11\n",
" 9.99987000042e11\n",
" 9.9998900003e11\n",
" 9.9999100002e11\n",
" 9.99993000012e11\n",
" 9.99995000006e11\n",
" 9.99997000002e11\n",
" 9.99999e11\n",
" 1.000001e12"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"@time f2.(n_range)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.9.1",
"language": "julia",
"name": "julia-1.9"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.9.1"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}