diff --git a/Project.toml b/Project.toml index a093b790..3f82b034 100644 --- a/Project.toml +++ b/Project.toml @@ -19,11 +19,13 @@ Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" [weakdeps] Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" +MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [extensions] RecursiveArrayToolsMeasurementsExt = "Measurements" +RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" RecursiveArrayToolsTrackerExt = "Tracker" RecursiveArrayToolsZygoteExt = "Zygote" @@ -46,6 +48,7 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800" Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" +MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" diff --git a/ext/RecursiveArrayToolsMonteCarloMeasurementsExt.jl b/ext/RecursiveArrayToolsMonteCarloMeasurementsExt.jl new file mode 100644 index 00000000..20a1ba16 --- /dev/null +++ b/ext/RecursiveArrayToolsMonteCarloMeasurementsExt.jl @@ -0,0 +1,16 @@ +module RecursiveArrayToolsMeasurementsExt + +import RecursiveArrayTools +isdefined(Base, :get_extension) ? (import Measurements) : (import ..Measurements) + +function RecursiveArrayTools.recursive_unitless_bottom_eltype(a::Type{ + <:MonteCarloMeasurements.Particles + }) + typeof(one(a)) +end + +function RecursiveArrayTools.recursive_unitless_eltype(a::Type{<:MonteCarloMeasurements.Particles}) + typeof(one(a)) +end + +end diff --git a/test/downstream/Project.toml b/test/downstream/Project.toml index 89471dae..79c99a1c 100644 --- a/test/downstream/Project.toml +++ b/test/downstream/Project.toml @@ -1,9 +1,13 @@ [deps] ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" +MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" [compat] ModelingToolkit = "8.33" +MonteCarloMeasurements = "1.1" OrdinaryDiffEq = "6.31" +Unitful = "1.17" Tracker = "0.2" \ No newline at end of file diff --git a/test/downstream/measurements_and_units.jl b/test/downstream/measurements_and_units.jl new file mode 100644 index 00000000..a6a39b60 --- /dev/null +++ b/test/downstream/measurements_and_units.jl @@ -0,0 +1,9 @@ +using Unitful,MonteCarloMeasurements,OrdinaryDiffEq + +g3 = 9.81u"m/s^2" +du4 = [10.0±.1,10.0±.1].*u"m/s" +tspan3 = (0.0,1.0).*u"s" +f3(du,u,p,t) = [0.0u"m/s^2",-g3] +u3 = [0.0,0.0].*u"m" +problem4 = SecondOrderODEProblem(f3,du4,u3,tspan3) +solve(problem4, Tsit5()) \ No newline at end of file