olson-sean-k / theon Goto Github PK
View Code? Open in Web Editor NEWAbstraction of Euclidean spaces.
License: MIT License
Abstraction of Euclidean spaces.
License: MIT License
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. ๐คท
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).
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.