Skip to content
Snippets Groups Projects
Commit 7ef7f6fb authored by Brian Groenke's avatar Brian Groenke
Browse files

Fix bugs in ParameterVector and Profile util methods

parent df78d4c4
No related branches found
No related tags found
1 merge request!68Minor bug fixes and refactoring
...@@ -9,7 +9,9 @@ Flatten.flattenable(::Type{<:Profile}, ::Type{Val{:depths}}) = false ...@@ -9,7 +9,9 @@ Flatten.flattenable(::Type{<:Profile}, ::Type{Val{:depths}}) = false
Base.length(::Profile{N}) where N = N Base.length(::Profile{N}) where N = N
Base.iterate(profile::Profile) = iterate(zip(profile.depths,profile.values)) Base.iterate(profile::Profile) = iterate(zip(profile.depths,profile.values))
Base.iterate(profile::Profile, state) = iterate(zip(profile.depths,profile.values),state) Base.iterate(profile::Profile, state) = iterate(zip(profile.depths,profile.values),state)
Base.getindex(profile::Profile, i) = (depth=profile.depths[i], value=profile.values[i]) Base.getindex(profile::Profile, i::Int) = (depth=profile.depths[i], value=profile.values[i])
Base.getindex(profile::Profile, i) = Profile(profile.depths[i], profile.values[i])
Base.lastindex(profile::Profile) = lastindex(profile.depths)
StructTypes.StructType(::Type{<:Profile}) = StructTypes.UnorderedStruct() StructTypes.StructType(::Type{<:Profile}) = StructTypes.UnorderedStruct()
""" """
profile2array(profile::Profile{N,D,T};names) where {N,D,T} profile2array(profile::Profile{N,D,T};names) where {N,D,T}
......
...@@ -16,15 +16,15 @@ mappings(rv::ParameterVector) = getfield(rv, :mappings) ...@@ -16,15 +16,15 @@ mappings(rv::ParameterVector) = getfield(rv, :mappings)
Base.axes(rv::ParameterVector) = axes(getfield(rv, :vals)) Base.axes(rv::ParameterVector) = axes(getfield(rv, :vals))
Base.LinearIndices(rv::ParameterVector) = LinearIndices(getfield(rv, :vals)) Base.LinearIndices(rv::ParameterVector) = LinearIndices(getfield(rv, :vals))
Base.IndexStyle(::Type{<:ParameterVector}) = Base.IndexLinear() Base.IndexStyle(::Type{<:ParameterVector}) = Base.IndexLinear()
Base.similar(rv::ParameterVector) = ParameterVector(similar(vals(rv)), similar(pout(rv)), mappings(rv)) Base.similar(rv::ParameterVector) = ParameterVector(similar(vals(rv)), getfield(rv, :params), mappings(rv)...)
Base.similar(rv::ParameterVector, ::Type{T}) where T = ParameterVector(similar(vals(rv), T), similar(pout(rv), T), mappings(rv)) Base.similar(rv::ParameterVector, ::Type{T}) where T = ParameterVector(similar(vals(rv), T), getfield(rv, :params), mappings(rv)...)
Base.length(rv::ParameterVector) = length(getfield(rv, :vals)) Base.length(rv::ParameterVector) = length(getfield(rv, :vals))
Base.size(rv::ParameterVector) = size(getfield(rv, :vals)) Base.size(rv::ParameterVector) = size(getfield(rv, :vals))
Base.getproperty(rv::ParameterVector, sym::Symbol) = getproperty(getfield(rv, :vals), sym) Base.getproperty(rv::ParameterVector, sym::Symbol) = getproperty(getfield(rv, :vals), sym)
Base.getindex(rv::ParameterVector, i) = getfield(rv, :vals)[i] Base.getindex(rv::ParameterVector, i) = getfield(rv, :vals)[i]
Base.setproperty!(rv::ParameterVector, val, i) = setproperty!(getfield(rv, :vals), val, sym) Base.setproperty!(rv::ParameterVector, val, i) = setproperty!(getfield(rv, :vals), val, sym)
Base.setindex!(rv::ParameterVector, val, i) = setindex!(getfield(rv, :vals), val, i) Base.setindex!(rv::ParameterVector, val, i) = setindex!(getfield(rv, :vals), val, i)
Base.show(io, rv::ParameterVector) = show(io, getfield(rv, :vals)) Base.show(io, ::MIME"text/plain", rv::ParameterVector) = println(io, getfield(rv, :vals))
ComponentArrays.ComponentArray(rv::ParameterVector) = getfield(rv, :vals) ComponentArrays.ComponentArray(rv::ParameterVector) = getfield(rv, :vals)
_paramval(p::Param) = ustrip(p.val) # extracts value from Param type and strips units _paramval(p::Param) = ustrip(p.val) # extracts value from Param type and strips units
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment