GithubHelp home page GithubHelp logo

Comments (6)

tomasaschan avatar tomasaschan commented on May 21, 2024

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.

timholy avatar timholy commented on May 21, 2024

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.

tomasaschan avatar tomasaschan commented on May 21, 2024

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.

timholy avatar timholy commented on May 21, 2024

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.

timholy avatar timholy commented on May 21, 2024

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.

tomasaschan avatar tomasaschan commented on May 21, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.