Comments (2)
Maybe this helps: As noted by @pfitzseb, "julia can infer the getproperty
call in f2!
, but not the dotgetproperty
call in f1!
:"
julia> @code_warntype f1!(u)
MethodInstance for f1!(::ComponentVector{Float64})
from f1!(u) in Main at REPL[9]:1
Arguments
#self#::Core.Const(f1!)
u::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:2,)}}}
Body::Nothing
1 ─ %1 = Base.dotgetproperty(u, :x)::Any
│ %2 = Base.broadcasted(Base.identity, 0.0)::Core.Const(Base.Broadcast.Broadcasted(identity, (0.0,)))
│ Base.materialize!(%1, %2)
└── return Main.nothing
julia> @code_warntype f2!(u)
MethodInstance for f2!(::ComponentVector{Float64})
from f2!(u) in Main at REPL[10]:1
Arguments
#self#::Core.Const(f2!)
u::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:2,)}}}
Locals
x::SubArray{Float64, 1, Vector{Float64}, Tuple{UnitRange{Int64}}, true}
Body::Nothing
1 ─ (x = Base.getproperty(u, :x))
│ %2 = x::Core.PartialStruct(SubArray{Float64, 1, Vector{Float64}, Tuple{UnitRange{Int64}}, true}, Any[Vector{Float64}, Core.Const((1:2,)), Core.Const(0), Core.Const(1)])
│ %3 = Base.broadcasted(Base.identity, 0.0)::Core.Const(Base.Broadcast.Broadcasted(identity, (0.0,)))
│ Base.materialize!(%2, %3)
└── return Main.nothing
from componentarrays.jl.
Oh that's interesting. I'll see if there's anything I can do to nudge type inference there.
from componentarrays.jl.
Related Issues (20)
- vcat ambiguity with SparseArrays method HOT 2
- add missing LinearAlgebra methods on GPU
- Problem with `Zygote.hessian` HOT 1
- `lmul!` fails with Component Array on GPU
- Incorrect gradient type. HOT 2
- Scalar indexing on GPU when computing `Zygote.gradient` of `dot(x::CA, x::CA)`
- Method ambiguities reported by Aqua
- getting "Only homogeneous arrays are allowed" error for Vector{SVector} HOT 4
- How to get index range of subarray? HOT 3
- Extend KeepIndex to Vector indices HOT 1
- Nine broken tests for Test Summary: | Pass Broken Total Time Broadcasting | 30 9 39 7.2s HOT 1
- The ComponentArray type that can specify the properties of the ComponentArray object
- Indexing `ComponentMatrix` with `FlatAxis` components HOT 4
- `Diagonal(ComponentArray)` scalar indexing error HOT 1
- ComponentVectors are not stack-able HOT 10
- ComponentArray errors with `findall`
- Can't index component array with shaped components with subset of keys HOT 2
- FR: Preserve CA-ness when indexing component matrix with shaped components HOT 1
- Get rid of `ComponentMatrix` and higher-order `ComponentArray`s? HOT 12
- Missing reduced_index
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from componentarrays.jl.