{ "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 }