Giter Site home page Giter Site logo

Comments (2)

ryanrhymes avatar ryanrhymes commented on May 12, 2024

Good comment, really appreciate it. Indeed, interoperation on different number types is really desirable when fast prototyping. Most of the time in my research, I simply want to try something in utop quickly.

That is actually the motivation of Ext module in Owl. With Ext module, you can do basic math operations on different number types. Please refer to this tutorial: Operators and Ext Module.

But the price we pay for this convenience is: weaker type checking (by wrapping everything in one type) and performance degradation (due to the big match). I haven't really benchmarked about performance degradation yet. However, Ext is just an option for you to do fast prototyping. You can always use the corresponding functions in Owl for better type checking and performance. I think the the ultimate solution is whenever Modular Implicits is included in OCaml official release.

Currently, this interoperation only happens between dense data structures, but Sparse structure is definitely on my todo list. Actually, there is already placeholder in this file for the feature you suggested, I just need to implement the corresponding modules in that file.

Before this happens, I still need to refactor the sparse module a bit (dense module takes me most of the time at the moement).

from owl.

nilsbecker avatar nilsbecker commented on May 12, 2024

in my opinion abstracting sparse/dense is tricky. almost by definition, sparse matrices are big -- otherwise one would simply use dense matrices. but for big objects, you really want to be explicit about what you're doing to them, whether new memory is allocated etc. automating this is asking for unexpected out-of-memory situations.

from owl.

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.