Git Product home page Git Product logo

theon's People

Contributors

dependabot-preview[bot] avatar olson-sean-k avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

theon's Issues

Provide abstractions for geometric primitives like translations and rotations.

Theon should probably provide abstractions of foundational geometric primitives like translations, rotations, isometries, etc. that are built from the scalars, points, vectors, and matrices that are already abstracted. Such types would be analogous to similar types provided by some mathematics crates like nalgebra, but generalized to work with various implementations. This could lower the barrier to remaining agnostic to specific crates in library code. See the pictor support crate, for example.

Tangent: Plexus is using Theon to provide computational geometry APIs. I'm still not sure if this would be a good idea (see this issue), but it may be worth considering if the polygonal primitives in Plexus should still migrate into Theon. ๐Ÿคท

CI fails due to dynamic linking errors with Intel MKL during doctests.

See failures in this CI run. It looks like doctests are failing on the beta toolchain, because the Intel MKL dynamic library cannot be found. Interestingly, no such error occurs when running libtests. MKL is only used on Linux, so that's the only OS on which this failure occurs.

I first encountered this in Plexus' CI. It's not yet clear to me what the root cause is. In that repository, I tried various CI configurations and have found that the beta toolchain seems to be the most important variable. Using different versions of Ubuntu didn't avoid this error, and I was unable to install additional MKL packages in the workflow (and I doubt that is necessary).

Support array and LAPACK features on MacOS and Windows.

The array feature uses ndarray and supporting crates to implement operations that require solving linear systems of arbitrary size. This allows Theon to optionally support certain useful spatial queries, such as computing a best-fit plane given a sampling of points.

This depends on ndarray-linalg, which builds and links BLAS/LAPACK libraries. These require building source packages and don't offer consistent support for different OSes. In the worst case, the output on different OSes differs (which is very likely a bug). ๐Ÿ˜ฌ Currently, this feature is gated behind cfg(target_os = "linux").

Only supporting certain OSes means that downstream code must always use conditional compilation. If possible, find some combination of packages that build and run on Linux, MacOS, and Windows.

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.