{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "using RigidBodyDynamics\n", "using BenchmarkTools\n", "using ForwardDiff" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Joint \"bla\": Quaternion floating joint" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "const joint = Joint(\"bla\", QuaternionFloating{Float64}())" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "BenchmarkTools.Trial: \n", " samples: 10000\n", " evals/sample: 250\n", " time tolerance: 5.00%\n", " memory tolerance: 1.00%\n", " memory estimate: 480.00 bytes\n", " allocs estimate: 10\n", " minimum time: 300.00 ns (0.00% GC)\n", " median time: 337.00 ns (0.00% GC)\n", " mean time: 364.99 ns (4.91% GC)\n", " maximum time: 6.14 μs (93.36% GC)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# without autodiff:\n", "@benchmark RigidBodyDynamics._local_coordinates!(jointType, ϕ, ϕ̇, q0, q, v) setup = (\n", " jointType = joint.jointType;\n", " q = Vector{Float64}(num_positions(joint));\n", " rand_configuration!(joint, q);\n", " q0 = Vector{Float64}(num_positions(joint));\n", " rand_configuration!(joint, q0);\n", " v = rand(num_velocities(joint));\n", " ϕ = Vector{Float64}(num_velocities(joint));\n", " ϕ̇ = Vector{Float64}(num_velocities(joint))\n", ")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "local_coordinates2! (generic function with 1 method)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "const q̇ = Vector{Float64}(num_positions(joint))\n", "const q_autodiff = Vector{ForwardDiff.Dual{1,Float64}}(num_positions(joint))\n", "const q0_autodiff = Vector{ForwardDiff.Dual{1,Float64}}(num_positions(joint))\n", "const ϕ_autodiff = Vector{ForwardDiff.Dual{1,Float64}}(num_velocities(joint))\n", "function local_coordinates2!(jt::QuaternionFloating,\n", " ϕ::AbstractVector, ϕ̇::AbstractVector,\n", " q0::AbstractVector, q::AbstractVector, v::AbstractVector)\n", " RigidBodyDynamics._velocity_to_configuration_derivative!(jt, q̇, q, v)\n", " for i in eachindex(q)\n", " @inbounds q_autodiff = ForwardDiff.Dual(q[i], q̇[i])\n", " @inbounds q0_autodiff = ForwardDiff.Dual(q0[i], 0.)\n", " end\n", " RigidBodyDynamics._local_coordinates2!(jt, ϕ_autodiff, q0_autodiff, q_autodiff)\n", " for i in eachindex(ϕ_autodiff)\n", " @inbounds ϕ[i] = ForwardDiff.value(ϕ_autodiff[i])\n", " @inbounds ϕ̇[i] = ForwardDiff.partials(ϕ_autodiff[i])[1]\n", " end\n", "end" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "BenchmarkTools.Trial: \n", " samples: 10000\n", " evals/sample: 192\n", " time tolerance: 5.00%\n", " memory tolerance: 1.00%\n", " memory estimate: 528.00 bytes\n", " allocs estimate: 11\n", " minimum time: 532.00 ns (0.00% GC)\n", " median time: 547.00 ns (0.00% GC)\n", " mean time: 583.14 ns (3.74% GC)\n", " maximum time: 8.76 μs (93.35% GC)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# with autodiff:\n", "@benchmark local_coordinates2!(jointType, ϕ, ϕ̇, q0, q, v) setup = (\n", " jointType = joint.jointType;\n", " q = Vector{Float64}(num_positions(joint));\n", " rand_configuration!(joint, q);\n", " q0 = Vector{Float64}(num_positions(joint));\n", " rand_configuration!(joint, q0);\n", " v = rand(num_velocities(joint));\n", " ϕ = Vector{Float64}(num_velocities(joint));\n", " ϕ̇ = Vector{Float64}(num_velocities(joint))\n", ")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "using ProfileView" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "const q = Vector{Float64}(num_positions(joint));\n", "rand_configuration!(joint, q);\n", "const q0 = Vector{Float64}(num_positions(joint));\n", "rand_configuration!(joint, q0);\n", "const v = rand(num_velocities(joint));\n", "const ϕ = Vector{Float64}(num_velocities(joint));\n", "const ϕ̇ = Vector{Float64}(num_velocities(joint));" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Variables:\n", " #self#::Base.#*\n", " t1::RigidBodyDynamics.Transform3D{Float64}\n", " t2::RigidBodyDynamics.Transform3D{Float64}\n", " rot::Quaternions.Quaternion{Float64}\n", " trans::StaticArrays.SVector{3,Float64}\n", " qvec::StaticArrays.SVector{3,Float64}\n", " #203@_7::StaticArrays.##203#204{Base.#*,Float64}\n", " #temp#@_8::Float64\n", " #203@_9::StaticArrays.##203#204{Base.#*,Float64}\n", " #temp#@_10::Float64\n", " #203@_11::StaticArrays.##203#204{Base.#*,Float64}\n", "\n", "Body:\n", " begin \n", " $(Expr(:invoke, LambdaInfo for framecheck(::RigidBodyDynamics.CartesianFrame3D, ::RigidBodyDynamics.CartesianFrame3D), :(RigidBodyDynamics.framecheck), :((Core.getfield)(t1,:from)::RigidBodyDynamics.CartesianFrame3D), :((Core.getfield)(t2,:to)::RigidBodyDynamics.CartesianFrame3D))) # line 103:\n", " rot::Quaternions.Quaternion{Float64} = $(Expr(:invoke, LambdaInfo for *(::Quaternions.Quaternion{Float64}, ::Quaternions.Quaternion{Float64}), :(RigidBodyDynamics.*), :((Core.getfield)(t1,:rot)::Quaternions.Quaternion{Float64}), :((Core.getfield)(t2,:rot)::Quaternions.Quaternion{Float64}))) # line 104:\n", " trans::StaticArrays.SVector{3,Float64} = (Core.getfield)(t1::RigidBodyDynamics.Transform3D{Float64},:trans)::StaticArrays.SVector{3,Float64} # line 105:\n", " SSAValue(1) = (Core.getfield)(t2::RigidBodyDynamics.Transform3D{Float64},:trans)::StaticArrays.SVector{3,Float64}\n", " SSAValue(0) = (Core.getfield)(t1::RigidBodyDynamics.Transform3D{Float64},:rot)::Quaternions.Quaternion{Float64}\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/RigidBodyDynamics/src/util.jl rotate 108\n", " SSAValue(16) = (Core.getfield)(SSAValue(0),:v1)::Float64\n", " SSAValue(17) = (Core.getfield)(SSAValue(0),:v2)::Float64\n", " SSAValue(18) = (Core.getfield)(SSAValue(0),:v3)::Float64 # line 109:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl dot 257\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 264: # line 265:\n", " $(Expr(:inbounds, true))\n", " #temp#@_10::Float64 = (Base.box)(Base.Float64,(Base.add_float)((Base.box)(Base.Float64,(Base.add_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(16),(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(17),(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},2)::Float64)))),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(18),(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " goto 25\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " 25: \n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location operators.jl * 138\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_11::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), :((Base.box)(Base.Float64,(Base.mul_float)((Base.box)(Float64,(Base.sitofp)(Float64,2)),#temp#@_10)))))\n", " SSAValue(7) = #203@_11::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(20) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(7),:n)::Float64,SSAValue(16)))\n", " SSAValue(21) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(7),:n)::Float64,SSAValue(17)))\n", " SSAValue(22) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(7),:n)::Float64,SSAValue(18)))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl dot 257\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 264: # line 265:\n", " $(Expr(:inbounds, true))\n", " #temp#@_8::Float64 = (Base.box)(Base.Float64,(Base.add_float)((Base.box)(Base.Float64,(Base.add_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(16),SSAValue(16))),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(17),SSAValue(17))))),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(18),SSAValue(18)))))\n", " goto 57\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " 57: \n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_9::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), :((Base.box)(Base.Float64,(Base.sub_float)((Base.Math.box)(Base.Math.Float64,(Base.Math.powi_llvm)((Core.getfield)(SSAValue(0),:s)::Float64,(Base.box)(Int32,(Base.checked_trunc_sint)(Int32,2))))::Float64,#temp#@_8)))))\n", " SSAValue(5) = #203@_9::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(24) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(5),:n)::Float64,(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},1)::Float64))\n", " SSAValue(25) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(5),:n)::Float64,(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},2)::Float64))\n", " SSAValue(26) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(5),:n)::Float64,(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},3)::Float64))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(28) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(17),(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(18),(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(29) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(18),(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(16),(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(30) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(16),(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(17),(Base.getfield)((Core.getfield)(SSAValue(1),:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location operators.jl * 138\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_7::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), :((Base.box)(Base.Float64,(Base.mul_float)((Base.box)(Float64,(Base.sitofp)(Float64,2)),(Core.getfield)(SSAValue(0),:s)::Float64)))))\n", " SSAValue(3) = #203@_7::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(32) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(3),:n)::Float64,SSAValue(28)))\n", " SSAValue(33) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(3),:n)::Float64,SSAValue(29)))\n", " SSAValue(34) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(3),:n)::Float64,SSAValue(30)))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location operators.jl + 138\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(12) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(20),SSAValue(24)))\n", " SSAValue(13) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(21),SSAValue(25)))\n", " SSAValue(14) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(22),SSAValue(26)))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(37) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(12),SSAValue(32)))\n", " SSAValue(38) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(13),SSAValue(33)))\n", " SSAValue(39) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(14),SSAValue(34)))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(35) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.add_float)((Base.getfield)((Core.getfield)(trans,:data)::Tuple{Float64,Float64,Float64},1)::Float64,SSAValue(37))),(Base.box)(Base.Float64,(Base.add_float)((Base.getfield)((Core.getfield)(trans,:data)::Tuple{Float64,Float64,Float64},2)::Float64,SSAValue(38))),(Base.box)(Base.Float64,(Base.add_float)((Base.getfield)((Core.getfield)(trans,:data)::Tuple{Float64,Float64,Float64},3)::Float64,SSAValue(39))))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " trans::StaticArrays.SVector{3,Float64} = SSAValue(35) # line 106:\n", " return $(Expr(:new, RigidBodyDynamics.Transform3D{Float64}, :((Core.getfield)(t2,:from)::RigidBodyDynamics.CartesianFrame3D), :((Core.getfield)(t1,:to)::RigidBodyDynamics.CartesianFrame3D), :(rot), :($(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.getfield)(trans,:data)::Tuple{Float64,Float64,Float64}))))))\n", " end::RigidBodyDynamics.Transform3D{Float64}\n" ] } ], "source": [ "f1 = CartesianFrame3D(); f2 = CartesianFrame3D(); t1 = rand(Transform3D{Float64}, f1, f2); t2 = rand(Transform3D{Float64}, f1, f2)\n", "@code_warntype *(t1, t2)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Variables:\n", " #self#::RigidBodyDynamics.#_local_coordinates!\n", " jt::RigidBodyDynamics.QuaternionFloating{Float64}\n", " ϕ::Array{Float64,1}\n", " ϕ̇::Array{Float64,1}\n", " q0::Array{Float64,1}\n", " q::Array{Float64,1}\n", " v::Array{Float64,1}\n", " frameBefore::RigidBodyDynamics.CartesianFrame3D\n", " frame0::RigidBodyDynamics.CartesianFrame3D\n", " frameAfter::RigidBodyDynamics.CartesianFrame3D\n", " t0::RigidBodyDynamics.Transform3D{Float64}\n", " t::RigidBodyDynamics.Transform3D{Float64}\n", " relative_transform::RigidBodyDynamics.Transform3D{Float64}\n", " rot::Quaternions.Quaternion{Float64}\n", " trans::StaticArrays.SVector{3,Float64}\n", " Θ_over_2::Float64\n", " Θ::Float64\n", " sΘ_over_2::Float64\n", " cΘ_over_2::Float64\n", " axis::StaticArrays.SVector{3,Float64}\n", " ϕrot::StaticArrays.SVector{3,Float64}\n", " α::Float64\n", " Θ_squared::Float64\n", " p::StaticArrays.SVector{3,Float64}\n", " ϕtrans::StaticArrays.SVector{3,Float64}\n", " ω@_26::StaticArrays.SVector{3,Float64}\n", " ν::StaticArrays.SVector{3,Float64}\n", " β::Float64\n", " A::Float64\n", " B::Float64\n", " #temp#@_31::Int64\n", " ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64}\n", " ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64}\n", " #temp#@_34::Int64\n", " ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64}\n", " ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64}\n", " #temp#@_37::Int64\n", " ϕ̇rot_cross_3::StaticArrays.SVector{3,Float64}\n", " ϕ̇trans_cross_3::StaticArrays.SVector{3,Float64}\n", " #temp#@_40::Int64\n", " ϕ̇rot_cross_4::StaticArrays.SVector{3,Float64}\n", " ϕ̇trans_cross_4::StaticArrays.SVector{3,Float64}\n", " ϕ̇rot::StaticArrays.SVector{3,Float64}\n", " ϕ̇trans::StaticArrays.SVector{3,Float64}\n", " #temp#@_45::StaticArrays.SVector{3,Float64}\n", " #201::StaticArrays.##201#202{Base.#*,Float64}\n", " #203@_47::StaticArrays.##203#204{Base.#*,Float64}\n", " #203@_48::StaticArrays.##203#204{Base.#*,Float64}\n", " #203@_49::StaticArrays.##203#204{Base.#*,Float64}\n", " ω@_50::SubArray{Float64,1,Array{Float64,1},Tuple{UnitRange{Int64}},true}\n", " J@_51::Tuple{UnitRange{Int64}}\n", " vel::SubArray{Float64,1,Array{Float64,1},Tuple{UnitRange{Int64}},true}\n", " J@_53::Tuple{UnitRange{Int64}}\n", " angular@_54::StaticArrays.SVector{3,Float64}\n", " linear@_55::StaticArrays.SVector{3,Float64}\n", " angular@_56::StaticArrays.SVector{3,Float64}\n", " linear@_57::StaticArrays.SVector{3,Float64}\n", " angular@_58::StaticArrays.SVector{3,Float64}\n", " linear@_59::StaticArrays.SVector{3,Float64}\n", " angular@_60::StaticArrays.SVector{3,Float64}\n", " linear@_61::StaticArrays.SVector{3,Float64}\n", " #203@_62::StaticArrays.##203#204{Base.#*,Float64}\n", " #203@_63::StaticArrays.##203#204{Base.#*,Float64}\n", " #203@_64::StaticArrays.##203#204{Base.#*,Float64}\n", " #203@_65::StaticArrays.##203#204{Base.#*,Float64}\n", " #203@_66::StaticArrays.##203#204{Base.#*,Float64}\n", " #203@_67::StaticArrays.##203#204{Base.#*,Float64}\n", " J@_68::Tuple{UnitRange{Int64}}\n", " J@_69::Tuple{UnitRange{Int64}}\n", " J@_70::Tuple{UnitRange{Int64}}\n", " J@_71::Tuple{UnitRange{Int64}}\n", "\n", "Body:\n", " begin \n", " NewvarNode(:(axis::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(ϕrot::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(α::Float64))\n", " NewvarNode(:(Θ_squared::Float64))\n", " NewvarNode(:(p::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(ϕtrans::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(ω@_26::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(ν::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(β::Float64))\n", " NewvarNode(:(A::Float64))\n", " NewvarNode(:(B::Float64))\n", " NewvarNode(:(#temp#@_31::Int64))\n", " NewvarNode(:(ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(#temp#@_34::Int64))\n", " NewvarNode(:(ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(#temp#@_37::Int64))\n", " NewvarNode(:(ϕ̇rot_cross_3::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(ϕ̇trans_cross_3::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(#temp#@_40::Int64))\n", " NewvarNode(:(ϕ̇rot_cross_4::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(ϕ̇trans_cross_4::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(ϕ̇rot::StaticArrays.SVector{3,Float64}))\n", " NewvarNode(:(ϕ̇trans::StaticArrays.SVector{3,Float64}))\n", " frameBefore::RigidBodyDynamics.CartesianFrame3D = $(Expr(:new, :(RigidBodyDynamics.CartesianFrame3D), -1)) # line 203:\n", " frame0::RigidBodyDynamics.CartesianFrame3D = $(Expr(:new, :(RigidBodyDynamics.CartesianFrame3D), -1)) # line 204:\n", " frameAfter::RigidBodyDynamics.CartesianFrame3D = $(Expr(:new, :(RigidBodyDynamics.CartesianFrame3D), -1)) # line 207:\n", " t0::RigidBodyDynamics.Transform3D{Float64} = $(Expr(:invoke, LambdaInfo for _joint_transform(::RigidBodyDynamics.QuaternionFloating{Float64}, ::RigidBodyDynamics.CartesianFrame3D, ::RigidBodyDynamics.CartesianFrame3D, ::Array{Float64,1}), :(RigidBodyDynamics._joint_transform), :(jt), :(frame0), :(frameBefore), :(q0))) # line 208:\n", " t::RigidBodyDynamics.Transform3D{Float64} = $(Expr(:invoke, LambdaInfo for _joint_transform(::RigidBodyDynamics.QuaternionFloating{Float64}, ::RigidBodyDynamics.CartesianFrame3D, ::RigidBodyDynamics.CartesianFrame3D, ::Array{Float64,1}), :(RigidBodyDynamics._joint_transform), :(jt), :(frameAfter), :(frameBefore), :(q))) # line 209:\n", " relative_transform::RigidBodyDynamics.Transform3D{Float64} = $(Expr(:invoke, LambdaInfo for *(::RigidBodyDynamics.Transform3D{Float64}, ::RigidBodyDynamics.Transform3D{Float64}), :(RigidBodyDynamics.*), :($(Expr(:invoke, LambdaInfo for inv(::RigidBodyDynamics.Transform3D{Float64}), :(RigidBodyDynamics.inv), :(t0)))), :(t))) # line 211:\n", " rot::Quaternions.Quaternion{Float64} = (Core.getfield)(relative_transform::RigidBodyDynamics.Transform3D{Float64},:rot)::Quaternions.Quaternion{Float64} # line 212:\n", " trans::StaticArrays.SVector{3,Float64} = (Core.getfield)(relative_transform::RigidBodyDynamics.Transform3D{Float64},:trans)::StaticArrays.SVector{3,Float64} # line 216:\n", " Θ_over_2::Float64 = (Core.ccall)((Core.tuple)(:atan2,Base.Math.libm)::Tuple{Symbol,String},Base.Math.Float64,(Core.svec)(Base.Math.Float64,Base.Math.Float64)::SimpleVector,(Base.Math.box)(Base.Math.Float64,(Base.Math.sqrt_llvm)((Base.box)(Base.Float64,(Base.add_float)((Base.box)(Base.Float64,(Base.add_float)((Base.Math.box)(Base.Math.Float64,(Base.Math.powi_llvm)((Core.getfield)(rot::Quaternions.Quaternion{Float64},:v1)::Float64,(Base.box)(Int32,(Base.checked_trunc_sint)(Int32,2))))::Float64,(Base.Math.box)(Base.Math.Float64,(Base.Math.powi_llvm)((Core.getfield)(rot::Quaternions.Quaternion{Float64},:v2)::Float64,(Base.box)(Int32,(Base.checked_trunc_sint)(Int32,2))))::Float64)),(Base.Math.box)(Base.Math.Float64,(Base.Math.powi_llvm)((Core.getfield)(rot::Quaternions.Quaternion{Float64},:v3)::Float64,(Base.box)(Int32,(Base.checked_trunc_sint)(Int32,2))))::Float64))))::Float64,0,(Core.getfield)(rot::Quaternions.Quaternion{Float64},:s)::Float64,0)::Float64 # line 217:\n", " Θ::Float64 = (Base.box)(Base.Float64,(Base.mul_float)((Base.box)(Float64,(Base.sitofp)(Float64,2)),Θ_over_2::Float64)) # line 218:\n", " sΘ_over_2::Float64 = $(Expr(:invoke, LambdaInfo for sin(::Float64), :(RigidBodyDynamics.sin), :(Θ_over_2))) # line 219:\n", " cΘ_over_2::Float64 = $(Expr(:invoke, LambdaInfo for cos(::Float64), :(RigidBodyDynamics.cos), :(Θ_over_2))) # line 220:\n", " SSAValue(14) = $(Expr(:invoke, LambdaInfo for eps(::Float64), :(RigidBodyDynamics.eps), :(Θ)))\n", " unless (Base.lt_float)(Θ::Float64,SSAValue(14))::Bool goto 54\n", " #temp#@_45::StaticArrays.SVector{3,Float64} = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Float64,(Base.sitofp)(Float64,1)),(Base.box)(Float64,(Base.sitofp)(Float64,0)),(Base.box)(Float64,(Base.sitofp)(Float64,0)))::Tuple{Float64,Float64,Float64})))\n", " goto 74\n", " 54: \n", " SSAValue(212) = (Core.getfield)(rot::Quaternions.Quaternion{Float64},:v1)::Float64\n", " SSAValue(213) = (Core.getfield)(rot::Quaternions.Quaternion{Float64},:v2)::Float64\n", " SSAValue(214) = (Core.getfield)(rot::Quaternions.Quaternion{Float64},:v3)::Float64\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 26\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 250\n", " #201::StaticArrays.##201#202{Base.#*,Float64} = $(Expr(:new, StaticArrays.##201#202{Base.#*,Float64}, :(StaticArrays.*), :((Base.box)(Base.Float64,(Base.div_float)((Base.box)(Float64,(Base.sitofp)(Float64,1)),sΘ_over_2)))))\n", " SSAValue(16) = #201::StaticArrays.##201#202{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(17) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(212),(Core.getfield)(SSAValue(16),:n)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(213),(Core.getfield)(SSAValue(16),:n)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(214),(Core.getfield)(SSAValue(16),:n)::Float64)))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " #temp#@_45::StaticArrays.SVector{3,Float64} = SSAValue(17)\n", " 74: \n", " axis::StaticArrays.SVector{3,Float64} = #temp#@_45::StaticArrays.SVector{3,Float64} # line 221:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_47::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), :(Θ)))\n", " SSAValue(18) = #203@_47::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(19) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(18),:n)::Float64,(Base.getfield)((Core.getfield)(axis,:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(18),:n)::Float64,(Base.getfield)((Core.getfield)(axis,:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(18),:n)::Float64,(Base.getfield)((Core.getfield)(axis,:data)::Tuple{Float64,Float64,Float64},3)::Float64)))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " ϕrot::StaticArrays.SVector{3,Float64} = SSAValue(19) # line 225:\n", " α::Float64 = (Base.box)(Base.Float64,(Base.div_float)((Base.box)(Base.Float64,(Base.mul_float)(Θ_over_2::Float64,cΘ_over_2::Float64)),sΘ_over_2::Float64)) # line 226:\n", " Θ_squared::Float64 = (Base.box)(Base.Float64,(Base.mul_float)(Θ::Float64,Θ::Float64)) # line 227:\n", " p::StaticArrays.SVector{3,Float64} = trans::StaticArrays.SVector{3,Float64} # line 228:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_49::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), 0.5))\n", " SSAValue(24) = #203@_49::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(216) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(24),:n)::Float64,(Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))\n", " SSAValue(217) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(24),:n)::Float64,(Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))\n", " SSAValue(218) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(24),:n)::Float64,(Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(220) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(217),(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(218),(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(221) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(218),(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(216),(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(222) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(216),(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(217),(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl - 14\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(224) = (Base.box)(Base.Float64,(Base.sub_float)((Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,SSAValue(220)))\n", " SSAValue(225) = (Base.box)(Base.Float64,(Base.sub_float)((Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,SSAValue(221)))\n", " SSAValue(226) = (Base.box)(Base.Float64,(Base.sub_float)((Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,SSAValue(222)))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_48::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), :((Base.box)(Base.Float64,(Base.div_float)((Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Float64,(Base.sitofp)(Float64,1)),α)),Θ_squared)))))\n", " SSAValue(21) = #203@_48::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(228) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(21),:n)::Float64,(Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))\n", " SSAValue(229) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(21),:n)::Float64,(Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))\n", " SSAValue(230) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(21),:n)::Float64,(Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(232) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(233) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(234) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(p::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(236) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(229),SSAValue(234))),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(230),SSAValue(233)))))\n", " SSAValue(237) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(230),SSAValue(232))),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(228),SSAValue(234)))))\n", " SSAValue(238) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)(SSAValue(228),SSAValue(233))),(Base.box)(Base.Float64,(Base.mul_float)(SSAValue(229),SSAValue(232)))))\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(28) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.add_float)(SSAValue(224),SSAValue(236))),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(225),SSAValue(237))),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(226),SSAValue(238))))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " ϕtrans::StaticArrays.SVector{3,Float64} = SSAValue(28) # line 233:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/RigidBodyDynamics/src/joint_types.jl angular_velocity 62\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/RigidBodyDynamics/src/joint_types.jl angular_velocity_view 59\n", " $(Expr(:inbounds, true))\n", " SSAValue(45) = $(Expr(:new, UnitRange{Int64}, 1, :((Base.select_value)((Base.sle_int)(1,3)::Bool,3,(Base.box)(Int64,(Base.sub_int)(1,1)))::Int64)))\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl view 64\n", " $(Expr(:boundscheck, true))\n", " SSAValue(30) = (Core.tuple)(SSAValue(45))::Tuple{UnitRange{Int64}}\n", " $(Expr(:inbounds, false))\n", " # meta: location abstractarray.jl checkbounds 284\n", " # meta: location abstractarray.jl checkbounds 270\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(34) = (Base.arraysize)(v::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(33) = SSAValue(34)\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location abstractarray.jl checkbounds_indices 319\n", " SSAValue(39) = (Base.select_value)((Base.slt_int)(SSAValue(33),0)::Bool,0,SSAValue(33))::Int64\n", " SSAValue(35) = (Core.getfield)(SSAValue(30),1)::UnitRange{Int64}\n", " # meta: location abstractarray.jl checkindex 371\n", " SSAValue(38) = (Core.getfield)(SSAValue(35),:start)::Int64\n", " SSAValue(37) = (Core.getfield)(SSAValue(35),:stop)::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(31) = (Base.box)(Base.Bool,(Base.or_int)((Base.slt_int)((Core.getfield)(SSAValue(35),:stop)::Int64,(Core.getfield)(SSAValue(35),:start)::Int64)::Bool,(Base.box)(Base.Bool,(Base.and_int)((Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(38))::Bool,(Base.sle_int)(SSAValue(38),SSAValue(39))::Bool)),(Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(37))::Bool,(Base.sle_int)(SSAValue(37),SSAValue(39))::Bool))))))\n", " unless SSAValue(31) goto 224\n", " goto 226\n", " 224: \n", " $(Expr(:invoke, LambdaInfo for throw_boundserror(::Array{Float64,1}, ::Tuple{UnitRange{Int64}}), :(Base.throw_boundserror), :(v), SSAValue(30)))\n", " 226: \n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " Base.nothing\n", " $(Expr(:boundscheck, :pop)) # line 65:\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl unsafe_view 80\n", " J@_51::Tuple{UnitRange{Int64}} = (Core.tuple)(SSAValue(45))::Tuple{UnitRange{Int64}} # line 81:\n", " # meta: location multidimensional.jl index_shape 224\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(42) = (Base.arraysize)(v::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(41) = SSAValue(42)\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(43) = (Core.getfield)(J@_51::Tuple{UnitRange{Int64}},1)::UnitRange{Int64}\n", " # meta: location multidimensional.jl index_shape_dim 233\n", " # meta: location abstractarray.jl indices 67\n", " # meta: location tuple.jl map 92\n", " SSAValue(44) = (Base.Checked.box)(Int64,(Base.Checked.checked_sadd_int)((Base.Checked.box)(Int64,(Base.Checked.checked_ssub_int)((Core.getfield)(SSAValue(43),:stop)::Int64,(Core.getfield)(SSAValue(43),:start)::Int64))::Int64,1))::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " ω@_50::SubArray{Float64,1,Array{Float64,1},Tuple{UnitRange{Int64}},true} = $(Expr(:invoke, LambdaInfo for SubArray{T,N,P,I,L}(::Base.LinearFast, ::Array{Float64,1}, ::Tuple{UnitRange{Int64}}, ::Tuple{Int64}), :(Base.SubArray), :($(Expr(:new, :(Base.LinearFast)))), :(v), :(J@_51), :((Core.tuple)((Base.select_value)((Base.slt_int)(SSAValue(44),0)::Bool,0,SSAValue(44))::Int64)::Tuple{Int64})))\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " ω@_26::StaticArrays.SVector{3,Float64} = $(Expr(:invoke, LambdaInfo for StaticArrays.SVector{3,T}(::SubArray{Float64,1,Array{Float64,1},Tuple{UnitRange{Int64}},true}), :((Core.apply_type)(RigidBodyDynamics.SVector,3)::Type{StaticArrays.SVector{3,T}}), :(ω@_50))) # line 234:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/RigidBodyDynamics/src/joint_types.jl linear_velocity 63\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/RigidBodyDynamics/src/joint_types.jl linear_velocity_view 60\n", " $(Expr(:inbounds, true))\n", " SSAValue(62) = $(Expr(:new, UnitRange{Int64}, 4, :((Base.select_value)((Base.sle_int)(4,6)::Bool,6,(Base.box)(Int64,(Base.sub_int)(4,1)))::Int64)))\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl view 64\n", " $(Expr(:boundscheck, true))\n", " SSAValue(47) = (Core.tuple)(SSAValue(62))::Tuple{UnitRange{Int64}}\n", " $(Expr(:inbounds, false))\n", " # meta: location abstractarray.jl checkbounds 284\n", " # meta: location abstractarray.jl checkbounds 270\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(51) = (Base.arraysize)(v::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(50) = SSAValue(51)\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location abstractarray.jl checkbounds_indices 319\n", " SSAValue(56) = (Base.select_value)((Base.slt_int)(SSAValue(50),0)::Bool,0,SSAValue(50))::Int64\n", " SSAValue(52) = (Core.getfield)(SSAValue(47),1)::UnitRange{Int64}\n", " # meta: location abstractarray.jl checkindex 371\n", " SSAValue(55) = (Core.getfield)(SSAValue(52),:start)::Int64\n", " SSAValue(54) = (Core.getfield)(SSAValue(52),:stop)::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(48) = (Base.box)(Base.Bool,(Base.or_int)((Base.slt_int)((Core.getfield)(SSAValue(52),:stop)::Int64,(Core.getfield)(SSAValue(52),:start)::Int64)::Bool,(Base.box)(Base.Bool,(Base.and_int)((Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(55))::Bool,(Base.sle_int)(SSAValue(55),SSAValue(56))::Bool)),(Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(54))::Bool,(Base.sle_int)(SSAValue(54),SSAValue(56))::Bool))))))\n", " unless SSAValue(48) goto 295\n", " goto 297\n", " 295: \n", " $(Expr(:invoke, LambdaInfo for throw_boundserror(::Array{Float64,1}, ::Tuple{UnitRange{Int64}}), :(Base.throw_boundserror), :(v), SSAValue(47)))\n", " 297: \n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " Base.nothing\n", " $(Expr(:boundscheck, :pop)) # line 65:\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl unsafe_view 80\n", " J@_53::Tuple{UnitRange{Int64}} = (Core.tuple)(SSAValue(62))::Tuple{UnitRange{Int64}} # line 81:\n", " # meta: location multidimensional.jl index_shape 224\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(59) = (Base.arraysize)(v::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(58) = SSAValue(59)\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(60) = (Core.getfield)(J@_53::Tuple{UnitRange{Int64}},1)::UnitRange{Int64}\n", " # meta: location multidimensional.jl index_shape_dim 233\n", " # meta: location abstractarray.jl indices 67\n", " # meta: location tuple.jl map 92\n", " SSAValue(61) = (Base.Checked.box)(Int64,(Base.Checked.checked_sadd_int)((Base.Checked.box)(Int64,(Base.Checked.checked_ssub_int)((Core.getfield)(SSAValue(60),:stop)::Int64,(Core.getfield)(SSAValue(60),:start)::Int64))::Int64,1))::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " vel::SubArray{Float64,1,Array{Float64,1},Tuple{UnitRange{Int64}},true} = $(Expr(:invoke, LambdaInfo for SubArray{T,N,P,I,L}(::Base.LinearFast, ::Array{Float64,1}, ::Tuple{UnitRange{Int64}}, ::Tuple{Int64}), :(Base.SubArray), :($(Expr(:new, :(Base.LinearFast)))), :(v), :(J@_53), :((Core.tuple)((Base.select_value)((Base.slt_int)(SSAValue(61),0)::Bool,0,SSAValue(61))::Int64)::Tuple{Int64})))\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " ν::StaticArrays.SVector{3,Float64} = $(Expr(:invoke, LambdaInfo for StaticArrays.SVector{3,T}(::SubArray{Float64,1,Array{Float64,1},Tuple{UnitRange{Int64}},true}), :((Core.apply_type)(RigidBodyDynamics.SVector,3)::Type{StaticArrays.SVector{3,T}}), :(vel))) # line 235:\n", " β::Float64 = (Base.box)(Base.Float64,(Base.div_float)((Base.box)(Base.Float64,(Base.mul_float)(Θ_over_2::Float64,Θ_over_2::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(sΘ_over_2::Float64,sΘ_over_2::Float64)))) # line 236:\n", " A::Float64 = (Base.box)(Base.Float64,(Base.div_float)((Base.box)(Base.Float64,(Base.add_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.box)(Float64,(Base.sitofp)(Float64,2)),(Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Float64,(Base.sitofp)(Float64,1)),α::Float64)))),(Base.box)(Base.Float64,(Base.mul_float)(0.5,(Base.box)(Base.Float64,(Base.sub_float)(α::Float64,β::Float64)))))),Θ_squared::Float64)) # line 237:\n", " B::Float64 = (Base.box)(Base.Float64,(Base.div_float)((Base.box)(Base.Float64,(Base.add_float)((Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Float64,(Base.sitofp)(Float64,1)),α::Float64)),(Base.box)(Base.Float64,(Base.mul_float)(0.5,(Base.box)(Base.Float64,(Base.sub_float)(α::Float64,β::Float64)))))),(Base.box)(Base.Float64,(Base.mul_float)(Θ_squared::Float64,Θ_squared::Float64)))) # line 238:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/RigidBodyDynamics/src/spatial.jl se3_commutator 422\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(63) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ω@_26,:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ω@_26,:data)::Tuple{Float64,Float64,Float64},2)::Float64)))),(Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ω@_26,:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ω@_26,:data)::Tuple{Float64,Float64,Float64},3)::Float64)))),(Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ω@_26,:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ω@_26,:data)::Tuple{Float64,Float64,Float64},1)::Float64)))))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " angular@_54::StaticArrays.SVector{3,Float64} = SSAValue(63) # line 423:\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(68) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ν::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ν::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(69) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ν::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ν::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(70) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ν::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ν::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(72) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ω@_26::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ω@_26::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(73) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ω@_26::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ω@_26::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(74) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ω@_26::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ω@_26::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(66) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.add_float)(SSAValue(68),SSAValue(72))),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(69),SSAValue(73))),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(70),SSAValue(74))))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " linear@_55::StaticArrays.SVector{3,Float64} = SSAValue(66)\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " SSAValue(239) = angular@_54::StaticArrays.SVector{3,Float64}\n", " SSAValue(240) = linear@_55::StaticArrays.SVector{3,Float64}\n", " #temp#@_31::Int64 = $(QuoteNode(1))\n", " SSAValue(241) = (Base.box)(Int64,(Base.add_int)(1,1))\n", " ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64} = SSAValue(239)\n", " #temp#@_31::Int64 = SSAValue(241)\n", " SSAValue(242) = (Base.box)(Int64,(Base.add_int)(2,1))\n", " ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64} = SSAValue(240)\n", " #temp#@_31::Int64 = SSAValue(242) # line 239:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/RigidBodyDynamics/src/spatial.jl se3_commutator 422\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(75) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1,:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1,:data)::Tuple{Float64,Float64,Float64},2)::Float64)))),(Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1,:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1,:data)::Tuple{Float64,Float64,Float64},3)::Float64)))),(Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1,:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1,:data)::Tuple{Float64,Float64,Float64},1)::Float64)))))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " angular@_56::StaticArrays.SVector{3,Float64} = SSAValue(75) # line 423:\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(80) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(81) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(82) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(84) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(85) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(86) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(78) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.add_float)(SSAValue(80),SSAValue(84))),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(81),SSAValue(85))),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(82),SSAValue(86))))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " linear@_57::StaticArrays.SVector{3,Float64} = SSAValue(78)\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " SSAValue(243) = angular@_56::StaticArrays.SVector{3,Float64}\n", " SSAValue(244) = linear@_57::StaticArrays.SVector{3,Float64}\n", " #temp#@_34::Int64 = $(QuoteNode(1))\n", " SSAValue(245) = (Base.box)(Int64,(Base.add_int)(1,1))\n", " ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64} = SSAValue(243)\n", " #temp#@_34::Int64 = SSAValue(245)\n", " SSAValue(246) = (Base.box)(Int64,(Base.add_int)(2,1))\n", " ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64} = SSAValue(244)\n", " #temp#@_34::Int64 = SSAValue(246) # line 240:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/RigidBodyDynamics/src/spatial.jl se3_commutator 422\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(87) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2,:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2,:data)::Tuple{Float64,Float64,Float64},2)::Float64)))),(Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2,:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2,:data)::Tuple{Float64,Float64,Float64},3)::Float64)))),(Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2,:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2,:data)::Tuple{Float64,Float64,Float64},1)::Float64)))))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " angular@_58::StaticArrays.SVector{3,Float64} = SSAValue(87) # line 423:\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(92) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(93) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(94) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(96) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(97) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(98) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(90) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.add_float)(SSAValue(92),SSAValue(96))),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(93),SSAValue(97))),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(94),SSAValue(98))))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " linear@_59::StaticArrays.SVector{3,Float64} = SSAValue(90)\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " SSAValue(247) = angular@_58::StaticArrays.SVector{3,Float64}\n", " SSAValue(248) = linear@_59::StaticArrays.SVector{3,Float64}\n", " #temp#@_37::Int64 = $(QuoteNode(1))\n", " SSAValue(249) = (Base.box)(Int64,(Base.add_int)(1,1))\n", " ϕ̇rot_cross_3::StaticArrays.SVector{3,Float64} = SSAValue(247)\n", " #temp#@_37::Int64 = SSAValue(249)\n", " SSAValue(250) = (Base.box)(Int64,(Base.add_int)(2,1))\n", " ϕ̇trans_cross_3::StaticArrays.SVector{3,Float64} = SSAValue(248)\n", " #temp#@_37::Int64 = SSAValue(250) # line 241:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/RigidBodyDynamics/src/spatial.jl se3_commutator 422\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(99) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3,:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3,:data)::Tuple{Float64,Float64,Float64},2)::Float64)))),(Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3,:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3,:data)::Tuple{Float64,Float64,Float64},3)::Float64)))),(Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3,:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot,:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3,:data)::Tuple{Float64,Float64,Float64},1)::Float64)))))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " angular@_60::StaticArrays.SVector{3,Float64} = SSAValue(99) # line 423:\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(104) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(105) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(106) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕrot::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl cross 246\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl # line 248: # line 249:\n", " SSAValue(108) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))))\n", " SSAValue(109) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))))\n", " SSAValue(110) = (Base.box)(Base.Float64,(Base.sub_float)((Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Base.getfield)((Core.getfield)(ϕtrans::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_3::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(102) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.add_float)(SSAValue(104),SSAValue(108))),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(105),SSAValue(109))),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(106),SSAValue(110))))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " linear@_61::StaticArrays.SVector{3,Float64} = SSAValue(102)\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " SSAValue(251) = angular@_60::StaticArrays.SVector{3,Float64}\n", " SSAValue(252) = linear@_61::StaticArrays.SVector{3,Float64}\n", " #temp#@_40::Int64 = $(QuoteNode(1))\n", " SSAValue(253) = (Base.box)(Int64,(Base.add_int)(1,1))\n", " ϕ̇rot_cross_4::StaticArrays.SVector{3,Float64} = SSAValue(251)\n", " #temp#@_40::Int64 = SSAValue(253)\n", " SSAValue(254) = (Base.box)(Int64,(Base.add_int)(2,1))\n", " ϕ̇trans_cross_4::StaticArrays.SVector{3,Float64} = SSAValue(252)\n", " #temp#@_40::Int64 = SSAValue(254) # line 242:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_64::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), 0.5))\n", " SSAValue(115) = #203@_64::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(256) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(115),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))\n", " SSAValue(257) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(115),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))\n", " SSAValue(258) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(115),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_63::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), :(A)))\n", " SSAValue(113) = #203@_63::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(260) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(113),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))\n", " SSAValue(261) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(113),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))\n", " SSAValue(262) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(113),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_62::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), :(B)))\n", " SSAValue(111) = #203@_62::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(112) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(111),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_4,:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(111),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_4,:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(111),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇rot_cross_4,:data)::Tuple{Float64,Float64,Float64},3)::Float64)))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location operators.jl + 138\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(122) = (Base.box)(Base.Float64,(Base.add_float)((Base.getfield)((Core.getfield)(ω@_26::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,SSAValue(256)))\n", " SSAValue(123) = (Base.box)(Base.Float64,(Base.add_float)((Base.getfield)((Core.getfield)(ω@_26::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,SSAValue(257)))\n", " SSAValue(124) = (Base.box)(Base.Float64,(Base.add_float)((Base.getfield)((Core.getfield)(ω@_26::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,SSAValue(258)))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(126) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(122),SSAValue(260)))\n", " SSAValue(127) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(123),SSAValue(261)))\n", " SSAValue(128) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(124),SSAValue(262)))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(119) = SSAValue(112)\n", " # meta: location operators.jl afoldl 125\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(120) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.add_float)(SSAValue(126),(Base.getfield)((Core.getfield)(SSAValue(119),:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(127),(Base.getfield)((Core.getfield)(SSAValue(119),:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(128),(Base.getfield)((Core.getfield)(SSAValue(119),:data)::Tuple{Float64,Float64,Float64},3)::Float64)))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " ϕ̇rot::StaticArrays.SVector{3,Float64} = SSAValue(120) # line 243:\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_67::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), 0.5))\n", " SSAValue(133) = #203@_67::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(264) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(133),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))\n", " SSAValue(265) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(133),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))\n", " SSAValue(266) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(133),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_1::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_66::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), :(A)))\n", " SSAValue(131) = #203@_66::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(268) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(131),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64))\n", " SSAValue(269) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(131),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64))\n", " SSAValue(270) = (Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(131),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_2::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl * 25\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl broadcast 251\n", " #203@_65::StaticArrays.##203#204{Base.#*,Float64} = $(Expr(:new, StaticArrays.##203#204{Base.#*,Float64}, :(StaticArrays.*), :(B)))\n", " SSAValue(129) = #203@_65::StaticArrays.##203#204{Base.#*,Float64}\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 7\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 10: # line 11:\n", " SSAValue(130) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(129),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_4,:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(129),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_4,:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.mul_float)((Core.getfield)(SSAValue(129),:n)::Float64,(Base.getfield)((Core.getfield)(ϕ̇trans_cross_4,:data)::Tuple{Float64,Float64,Float64},3)::Float64)))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:inbounds, false))\n", " # meta: location operators.jl + 138\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(140) = (Base.box)(Base.Float64,(Base.add_float)((Base.getfield)((Core.getfield)(ν::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},1)::Float64,SSAValue(264)))\n", " SSAValue(141) = (Base.box)(Base.Float64,(Base.add_float)((Base.getfield)((Core.getfield)(ν::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},2)::Float64,SSAValue(265)))\n", " SSAValue(142) = (Base.box)(Base.Float64,(Base.add_float)((Base.getfield)((Core.getfield)(ν::StaticArrays.SVector{3,Float64},:data)::Tuple{Float64,Float64,Float64},3)::Float64,SSAValue(266)))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(144) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(140),SSAValue(268)))\n", " SSAValue(145) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(141),SSAValue(269)))\n", " SSAValue(146) = (Base.box)(Base.Float64,(Base.add_float)(SSAValue(142),SSAValue(270)))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(137) = SSAValue(130)\n", " # meta: location operators.jl afoldl 125\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/linalg.jl + 10\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl map 17\n", " # meta: location /home/twan/code/RigidBodyDynamics/v0.5/StaticArrays/src/mapreduce.jl # line 24: # line 25:\n", " SSAValue(138) = $(Expr(:new, StaticArrays.SVector{3,Float64}, :((Core.tuple)((Base.box)(Base.Float64,(Base.add_float)(SSAValue(144),(Base.getfield)((Core.getfield)(SSAValue(137),:data)::Tuple{Float64,Float64,Float64},1)::Float64)),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(145),(Base.getfield)((Core.getfield)(SSAValue(137),:data)::Tuple{Float64,Float64,Float64},2)::Float64)),(Base.box)(Base.Float64,(Base.add_float)(SSAValue(146),(Base.getfield)((Core.getfield)(SSAValue(137),:data)::Tuple{Float64,Float64,Float64},3)::Float64)))::Tuple{Float64,Float64,Float64})))\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " ϕ̇trans::StaticArrays.SVector{3,Float64} = SSAValue(138) # line 245:\n", " $(Expr(:inbounds, true))\n", " SSAValue(271) = $(Expr(:new, UnitRange{Int64}, 1, :((Base.select_value)((Base.sle_int)(1,3)::Bool,3,(Base.box)(Int64,(Base.sub_int)(1,1)))::Int64)))\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl view 64\n", " $(Expr(:boundscheck, true))\n", " SSAValue(148) = (Core.tuple)(SSAValue(271))::Tuple{UnitRange{Int64}}\n", " $(Expr(:inbounds, false))\n", " # meta: location abstractarray.jl checkbounds 284\n", " # meta: location abstractarray.jl checkbounds 270\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(152) = (Base.arraysize)(ϕ::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(151) = SSAValue(152)\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location abstractarray.jl checkbounds_indices 319\n", " SSAValue(157) = (Base.select_value)((Base.slt_int)(SSAValue(151),0)::Bool,0,SSAValue(151))::Int64\n", " SSAValue(153) = (Core.getfield)(SSAValue(148),1)::UnitRange{Int64}\n", " # meta: location abstractarray.jl checkindex 371\n", " SSAValue(156) = (Core.getfield)(SSAValue(153),:start)::Int64\n", " SSAValue(155) = (Core.getfield)(SSAValue(153),:stop)::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(149) = (Base.box)(Base.Bool,(Base.or_int)((Base.slt_int)((Core.getfield)(SSAValue(153),:stop)::Int64,(Core.getfield)(SSAValue(153),:start)::Int64)::Bool,(Base.box)(Base.Bool,(Base.and_int)((Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(156))::Bool,(Base.sle_int)(SSAValue(156),SSAValue(157))::Bool)),(Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(155))::Bool,(Base.sle_int)(SSAValue(155),SSAValue(157))::Bool))))))\n", " unless SSAValue(149) goto 750\n", " goto 752\n", " 750: \n", " $(Expr(:invoke, LambdaInfo for throw_boundserror(::Array{Float64,1}, ::Tuple{UnitRange{Int64}}), :(Base.throw_boundserror), :(ϕ), SSAValue(148)))\n", " 752: \n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " Base.nothing\n", " $(Expr(:boundscheck, :pop)) # line 65:\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl unsafe_view 80\n", " J@_68::Tuple{UnitRange{Int64}} = (Core.tuple)(SSAValue(271))::Tuple{UnitRange{Int64}} # line 81:\n", " # meta: location multidimensional.jl index_shape 224\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(160) = (Base.arraysize)(ϕ::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(159) = SSAValue(160)\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(161) = (Core.getfield)(J@_68::Tuple{UnitRange{Int64}},1)::UnitRange{Int64}\n", " # meta: location multidimensional.jl index_shape_dim 233\n", " # meta: location abstractarray.jl indices 67\n", " # meta: location tuple.jl map 92\n", " SSAValue(162) = (Base.Checked.box)(Int64,(Base.Checked.checked_sadd_int)((Base.Checked.box)(Int64,(Base.Checked.checked_ssub_int)((Core.getfield)(SSAValue(161),:stop)::Int64,(Core.getfield)(SSAValue(161),:start)::Int64))::Int64,1))::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:invoke, LambdaInfo for copy!(::SubArray{Float64,1,Array{Float64,1},Tuple{UnitRange{Int64}},true}, ::StaticArrays.SVector{3,Float64}), :(RigidBodyDynamics.copy!), :($(Expr(:invoke, LambdaInfo for SubArray{T,N,P,I,L}(::Base.LinearFast, ::Array{Float64,1}, ::Tuple{UnitRange{Int64}}, ::Tuple{Int64}), :(Base.SubArray), :($(Expr(:new, :(Base.LinearFast)))), :(ϕ), :(J@_68), :((Core.tuple)((Base.select_value)((Base.slt_int)(SSAValue(162),0)::Bool,0,SSAValue(162))::Int64)::Tuple{Int64})))), :(ϕrot)))\n", " $(Expr(:inbounds, :pop)) # line 246:\n", " $(Expr(:inbounds, true))\n", " SSAValue(272) = $(Expr(:new, UnitRange{Int64}, 4, :((Base.select_value)((Base.sle_int)(4,6)::Bool,6,(Base.box)(Int64,(Base.sub_int)(4,1)))::Int64)))\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl view 64\n", " $(Expr(:boundscheck, true))\n", " SSAValue(164) = (Core.tuple)(SSAValue(272))::Tuple{UnitRange{Int64}}\n", " $(Expr(:inbounds, false))\n", " # meta: location abstractarray.jl checkbounds 284\n", " # meta: location abstractarray.jl checkbounds 270\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(168) = (Base.arraysize)(ϕ::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(167) = SSAValue(168)\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location abstractarray.jl checkbounds_indices 319\n", " SSAValue(173) = (Base.select_value)((Base.slt_int)(SSAValue(167),0)::Bool,0,SSAValue(167))::Int64\n", " SSAValue(169) = (Core.getfield)(SSAValue(164),1)::UnitRange{Int64}\n", " # meta: location abstractarray.jl checkindex 371\n", " SSAValue(172) = (Core.getfield)(SSAValue(169),:start)::Int64\n", " SSAValue(171) = (Core.getfield)(SSAValue(169),:stop)::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(165) = (Base.box)(Base.Bool,(Base.or_int)((Base.slt_int)((Core.getfield)(SSAValue(169),:stop)::Int64,(Core.getfield)(SSAValue(169),:start)::Int64)::Bool,(Base.box)(Base.Bool,(Base.and_int)((Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(172))::Bool,(Base.sle_int)(SSAValue(172),SSAValue(173))::Bool)),(Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(171))::Bool,(Base.sle_int)(SSAValue(171),SSAValue(173))::Bool))))))\n", " unless SSAValue(165) goto 812\n", " goto 814\n", " 812: \n", " $(Expr(:invoke, LambdaInfo for throw_boundserror(::Array{Float64,1}, ::Tuple{UnitRange{Int64}}), :(Base.throw_boundserror), :(ϕ), SSAValue(164)))\n", " 814: \n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " Base.nothing\n", " $(Expr(:boundscheck, :pop)) # line 65:\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl unsafe_view 80\n", " J@_69::Tuple{UnitRange{Int64}} = (Core.tuple)(SSAValue(272))::Tuple{UnitRange{Int64}} # line 81:\n", " # meta: location multidimensional.jl index_shape 224\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(176) = (Base.arraysize)(ϕ::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(175) = SSAValue(176)\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(177) = (Core.getfield)(J@_69::Tuple{UnitRange{Int64}},1)::UnitRange{Int64}\n", " # meta: location multidimensional.jl index_shape_dim 233\n", " # meta: location abstractarray.jl indices 67\n", " # meta: location tuple.jl map 92\n", " SSAValue(178) = (Base.Checked.box)(Int64,(Base.Checked.checked_sadd_int)((Base.Checked.box)(Int64,(Base.Checked.checked_ssub_int)((Core.getfield)(SSAValue(177),:stop)::Int64,(Core.getfield)(SSAValue(177),:start)::Int64))::Int64,1))::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:invoke, LambdaInfo for copy!(::SubArray{Float64,1,Array{Float64,1},Tuple{UnitRange{Int64}},true}, ::StaticArrays.SVector{3,Float64}), :(RigidBodyDynamics.copy!), :($(Expr(:invoke, LambdaInfo for SubArray{T,N,P,I,L}(::Base.LinearFast, ::Array{Float64,1}, ::Tuple{UnitRange{Int64}}, ::Tuple{Int64}), :(Base.SubArray), :($(Expr(:new, :(Base.LinearFast)))), :(ϕ), :(J@_69), :((Core.tuple)((Base.select_value)((Base.slt_int)(SSAValue(178),0)::Bool,0,SSAValue(178))::Int64)::Tuple{Int64})))), :(ϕtrans)))\n", " $(Expr(:inbounds, :pop)) # line 248:\n", " $(Expr(:inbounds, true))\n", " SSAValue(273) = $(Expr(:new, UnitRange{Int64}, 1, :((Base.select_value)((Base.sle_int)(1,3)::Bool,3,(Base.box)(Int64,(Base.sub_int)(1,1)))::Int64)))\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl view 64\n", " $(Expr(:boundscheck, true))\n", " SSAValue(180) = (Core.tuple)(SSAValue(273))::Tuple{UnitRange{Int64}}\n", " $(Expr(:inbounds, false))\n", " # meta: location abstractarray.jl checkbounds 284\n", " # meta: location abstractarray.jl checkbounds 270\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(184) = (Base.arraysize)(ϕ̇::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(183) = SSAValue(184)\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location abstractarray.jl checkbounds_indices 319\n", " SSAValue(189) = (Base.select_value)((Base.slt_int)(SSAValue(183),0)::Bool,0,SSAValue(183))::Int64\n", " SSAValue(185) = (Core.getfield)(SSAValue(180),1)::UnitRange{Int64}\n", " # meta: location abstractarray.jl checkindex 371\n", " SSAValue(188) = (Core.getfield)(SSAValue(185),:start)::Int64\n", " SSAValue(187) = (Core.getfield)(SSAValue(185),:stop)::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(181) = (Base.box)(Base.Bool,(Base.or_int)((Base.slt_int)((Core.getfield)(SSAValue(185),:stop)::Int64,(Core.getfield)(SSAValue(185),:start)::Int64)::Bool,(Base.box)(Base.Bool,(Base.and_int)((Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(188))::Bool,(Base.sle_int)(SSAValue(188),SSAValue(189))::Bool)),(Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(187))::Bool,(Base.sle_int)(SSAValue(187),SSAValue(189))::Bool))))))\n", " unless SSAValue(181) goto 874\n", " goto 876\n", " 874: \n", " $(Expr(:invoke, LambdaInfo for throw_boundserror(::Array{Float64,1}, ::Tuple{UnitRange{Int64}}), :(Base.throw_boundserror), :(ϕ̇), SSAValue(180)))\n", " 876: \n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " Base.nothing\n", " $(Expr(:boundscheck, :pop)) # line 65:\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl unsafe_view 80\n", " J@_70::Tuple{UnitRange{Int64}} = (Core.tuple)(SSAValue(273))::Tuple{UnitRange{Int64}} # line 81:\n", " # meta: location multidimensional.jl index_shape 224\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(192) = (Base.arraysize)(ϕ̇::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(191) = SSAValue(192)\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(193) = (Core.getfield)(J@_70::Tuple{UnitRange{Int64}},1)::UnitRange{Int64}\n", " # meta: location multidimensional.jl index_shape_dim 233\n", " # meta: location abstractarray.jl indices 67\n", " # meta: location tuple.jl map 92\n", " SSAValue(194) = (Base.Checked.box)(Int64,(Base.Checked.checked_sadd_int)((Base.Checked.box)(Int64,(Base.Checked.checked_ssub_int)((Core.getfield)(SSAValue(193),:stop)::Int64,(Core.getfield)(SSAValue(193),:start)::Int64))::Int64,1))::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:invoke, LambdaInfo for copy!(::SubArray{Float64,1,Array{Float64,1},Tuple{UnitRange{Int64}},true}, ::StaticArrays.SVector{3,Float64}), :(RigidBodyDynamics.copy!), :($(Expr(:invoke, LambdaInfo for SubArray{T,N,P,I,L}(::Base.LinearFast, ::Array{Float64,1}, ::Tuple{UnitRange{Int64}}, ::Tuple{Int64}), :(Base.SubArray), :($(Expr(:new, :(Base.LinearFast)))), :(ϕ̇), :(J@_70), :((Core.tuple)((Base.select_value)((Base.slt_int)(SSAValue(194),0)::Bool,0,SSAValue(194))::Int64)::Tuple{Int64})))), :(ϕ̇rot)))\n", " $(Expr(:inbounds, :pop)) # line 249:\n", " $(Expr(:inbounds, true))\n", " SSAValue(274) = $(Expr(:new, UnitRange{Int64}, 4, :((Base.select_value)((Base.sle_int)(4,6)::Bool,6,(Base.box)(Int64,(Base.sub_int)(4,1)))::Int64)))\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl view 64\n", " $(Expr(:boundscheck, true))\n", " SSAValue(196) = (Core.tuple)(SSAValue(274))::Tuple{UnitRange{Int64}}\n", " $(Expr(:inbounds, false))\n", " # meta: location abstractarray.jl checkbounds 284\n", " # meta: location abstractarray.jl checkbounds 270\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(200) = (Base.arraysize)(ϕ̇::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(199) = SSAValue(200)\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: location abstractarray.jl checkbounds_indices 319\n", " SSAValue(205) = (Base.select_value)((Base.slt_int)(SSAValue(199),0)::Bool,0,SSAValue(199))::Int64\n", " SSAValue(201) = (Core.getfield)(SSAValue(196),1)::UnitRange{Int64}\n", " # meta: location abstractarray.jl checkindex 371\n", " SSAValue(204) = (Core.getfield)(SSAValue(201),:start)::Int64\n", " SSAValue(203) = (Core.getfield)(SSAValue(201),:stop)::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(197) = (Base.box)(Base.Bool,(Base.or_int)((Base.slt_int)((Core.getfield)(SSAValue(201),:stop)::Int64,(Core.getfield)(SSAValue(201),:start)::Int64)::Bool,(Base.box)(Base.Bool,(Base.and_int)((Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(204))::Bool,(Base.sle_int)(SSAValue(204),SSAValue(205))::Bool)),(Base.box)(Base.Bool,(Base.and_int)((Base.sle_int)(1,SSAValue(203))::Bool,(Base.sle_int)(SSAValue(203),SSAValue(205))::Bool))))))\n", " unless SSAValue(197) goto 936\n", " goto 938\n", " 936: \n", " $(Expr(:invoke, LambdaInfo for throw_boundserror(::Array{Float64,1}, ::Tuple{UnitRange{Int64}}), :(Base.throw_boundserror), :(ϕ̇), SSAValue(196)))\n", " 938: \n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " Base.nothing\n", " $(Expr(:boundscheck, :pop)) # line 65:\n", " $(Expr(:inbounds, false))\n", " # meta: location subarray.jl unsafe_view 80\n", " J@_71::Tuple{UnitRange{Int64}} = (Core.tuple)(SSAValue(274))::Tuple{UnitRange{Int64}} # line 81:\n", " # meta: location multidimensional.jl index_shape 224\n", " # meta: location abstractarray.jl indices 67\n", " SSAValue(208) = (Base.arraysize)(ϕ̇::Array{Float64,1},1)::Int64\n", " # meta: location tuple.jl map 92\n", " SSAValue(207) = SSAValue(208)\n", " # meta: pop location\n", " # meta: pop location\n", " SSAValue(209) = (Core.getfield)(J@_71::Tuple{UnitRange{Int64}},1)::UnitRange{Int64}\n", " # meta: location multidimensional.jl index_shape_dim 233\n", " # meta: location abstractarray.jl indices 67\n", " # meta: location tuple.jl map 92\n", " SSAValue(210) = (Base.Checked.box)(Int64,(Base.Checked.checked_sadd_int)((Base.Checked.box)(Int64,(Base.Checked.checked_ssub_int)((Core.getfield)(SSAValue(209),:stop)::Int64,(Core.getfield)(SSAValue(209),:start)::Int64))::Int64,1))::Int64\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " # meta: pop location\n", " $(Expr(:inbounds, :pop))\n", " $(Expr(:invoke, LambdaInfo for copy!(::SubArray{Float64,1,Array{Float64,1},Tuple{UnitRange{Int64}},true}, ::StaticArrays.SVector{3,Float64}), :(RigidBodyDynamics.copy!), :($(Expr(:invoke, LambdaInfo for SubArray{T,N,P,I,L}(::Base.LinearFast, ::Array{Float64,1}, ::Tuple{UnitRange{Int64}}, ::Tuple{Int64}), :(Base.SubArray), :($(Expr(:new, :(Base.LinearFast)))), :(ϕ̇), :(J@_71), :((Core.tuple)((Base.select_value)((Base.slt_int)(SSAValue(210),0)::Bool,0,SSAValue(210))::Int64)::Tuple{Int64})))), :(ϕ̇trans)))\n", " $(Expr(:inbounds, :pop)) # line 280:\n", " return RigidBodyDynamics.nothing\n", " end::Void\n" ] } ], "source": [ "@code_warntype RigidBodyDynamics._local_coordinates!(joint.jointType, ϕ, ϕ̇, q0, q, v)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "function test()\n", " for i = 1 : 1000000\n", " local_coordinates2!(joint.jointType, ϕ, ϕ̇, q0, q, v)\n", " end\n", "end" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "test()\n", "Profile.clear()\n", "@profile test()\n", "ProfileView.view()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "@benchmark b * a setup = (a = rand(); b = ForwardDiff.Dual(rand(), rand()))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "@benchmark inv(t1) * t2 setup = (f1 = CartesianFrame3D(); f2 = CartesianFrame3D(); t1 = rand(Transform3D{Float64}, f1, f2); t2 = rand(Transform3D{Float64}, f1, f2))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Julia 0.5.0", "language": "julia", "name": "julia-0.5" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "0.5.0" } }, "nbformat": 4, "nbformat_minor": 1 }