Comments (6)
If memory overhead for arrays is a problem, maybe the user can use ImmutableArrays.jl instead? Those only cover quite small arrays, but I imagine that the overhead becomes insignificant (?) for larger arrays. In any case, if we duck-type it, the user can choose a data structure that suits their needs (of simplicity and/or memory management) and have it Just Work(TM).
from interpolations.jl.
ImmutableArrays are basically what I was thinking up at the very top, and indeed they don't have any overhead whatsoever. But since ImmutableArrays don't extend up to vectors of length 200_000, we'll need to find another way. The FixedArrays I've been working on (JuliaLang/julia#7568) are basically an alternative implementation of ImmutableArrays that might, someday, scale.
Besides immutables, I don't know of another type that can be packed efficiently, so there could be a hard decision ahead. I'm really torn between make-the-user-use-a-vectorlike-element-type and declaring-one-or-more-dimensions-as-being-value-dimensions. I tend to think that the latter solution would work today, but just doesn't feel like the direction we want to go long-term.
from interpolations.jl.
Just a thought: how difficult would it be to support both? In other words, making interpolation with a single value dimension work also for vector-like element types, while having an API for declaring multiple dimensions as value dimensions alongside it, letting the user make the decision on what is best for them?
from interpolations.jl.
There's almost nothing needed to support vector-valued arrays; as long as f*A[1] + (1-f)*A[2]
yields the right thing, you're done. If we decide to support value dimensions in arrays, that won't conflict with the former. So you're right, we can do both. We just need to decide whether we want to go to the trouble to support value dimensions. I'm personally in favor, I think.
from interpolations.jl.
My impression is that, for both of us, our current thinking is that multi-valued interpolation will be handled by multi-valued element types (tuples, immutables, or their generalization). So I'll close this.
from interpolations.jl.
Yeah, I think so too. If we find a good use case for something like value dimensions in the future, we can always re-visit the decision.
from interpolations.jl.
Related Issues (20)
- Bounds Checking Dramatically Reduces Performance HOT 2
- typos HOT 2
- Is there a way to interpolate over a points cloud using irregular grids? HOT 2
- Documentation hard for me to understand HOT 3
- Cubic spline interpolation HOT 1
- Precompilation warnings HOT 3
- Documentation: what exactly is meant by "irregular grid"? HOT 1
- NaturalNeighbours.jl HOT 1
- `BoundsError` with Julia 1.10.0-beta1 HOT 2
- Interpolating 2D non-uniform Data HOT 1
- Interpolate a set of points HOT 1
- issue to remove
- Free(OnGrid()) boundary conditions produce surprising results HOT 4
- Documentation on GPU support HOT 6
- Interpolation bug when calling without extrapolate HOT 2
- CITATION.cff not generating options
- RFC: possible rework of element type and inferrability HOT 2
- Running examples in docs fails HOT 4
- Setup jldoctest
- Stable docs is pointing to 0.14.7 HOT 1
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 interpolations.jl.