Replies: 6 comments 26 replies
-
Re: transforms as objects, Lindsey floated boost tensors in coffea once so maybe worth having. |
Beta Was this translation helpful? Give feedback.
-
If we are to make a fully separate set of positional and momentum property/method names, I think it would be nice to be able to optionally expose only one or the other. |
Beta Was this translation helpful? Give feedback.
-
Let's avoid list 2 point 8 for now: as I've pointed out many times, I am strongly against using 3D vectors for positions; they are not points, they are directions + magnitude. The first iteration should not give any support to affine vectors at all. Functions like |
Beta Was this translation helpful? Give feedback.
-
I'm using the wiki to write up ontologies and naming conventions. This is mainly so that I can give names to a large number of |
Beta Was this translation helpful? Give feedback.
-
Great to see this and I'll gladly help with the implementation of TensorFlow and friends. I think they (jax, TF, PyTorch) share a commonality: they all have a numpy API, but don't allow in-place assignments (AFAIK), which we may want for e.g. pure Numpy. |
Beta Was this translation helpful? Give feedback.
-
A follow-up: the bulk implementation of Vector is pretty much done. I've written an overview here, which shows how the whole project fits together. Tomorrow, I'm writing docstrings. At this point, we should start encouraging adventurous users to use it. Doubtless, there will be rough edges that need to be fixed—I found a few of them while writing the overview. I'll be pivoting to work on Uproot in April, and one of the things I ought to do is make Uproot present Oh, we'd also need to transition the Take a look! |
Beta Was this translation helpful? Give feedback.
-
Hi watchers and @nsmith-, @jrueb, @marinang, and anyone else who has been interested in vectorized vectors!
A little over a month ago, @henryiii and I worked out a plan in which he would become in charge of the scikit-hep/awkward-1.0 build and deployment and I would bring the scikit-hep/vector package up to 1.0 status. I said I'd start that in March, and managed to get to it in time, as it's now March 2. I think this will take about a month (and then Uproot 4 file-writing is probably next).
The default branch for this project has already been set to
develop
, rather thanmain
. I'll be doing this development in PRs that targetdevelop
.I'm going to start by clearing out
src/vector
,tests
, and the documentation files indocs
, leaving the structure of everything else as it is: package configuration, continuous integration, the structure of the documentation, etc. This is to "get my head around" what is done and what isn't done—I'll be looking at the old code, and the result will have largely the same structure. But, for instance, I'll be turning on the type safety of the protocols (which ensure that we haven't missed any methods) at the end of development, rather than at the beginning.One structural change that I do plan to make is to make the NumPy implementation a subclass of
np.ndarray
again (as it was in hepvector). That forces the components to be contiguous in memory, which is a sometimes-desirable feature. Awkward Array handles the case when it isn't desired.I'll be looking closely at all of the other Lorentz vector projects for structure and naming conventions:
main
branch of this repo and henryiii/hepvector.I'm mostly reiterating the goals of Vector as @henryiii has described them, but it has 8 principles:
lib
, so thatnumpy
can be replaced withcupy
orjax.numpy
, etc.)perp
instead ofpt
, but overloads mix in synonyms.-
affine → vector, but affine+
affine is an error, while all operations are available to vectors. (This is like ROOT's Math::PositionVector3D versus Math::DisplacementVector3D.)The order of development will be roughly as follows:
lib
to pass into all the math functions.ak.behavior
).ak.behavior
.By this point, we'd want to release some versions and get some feedback from users.
develop
should be merged intomain
and releases/release candidates should be deployed. Hopefully, I can get to step 12 by the end of the month, but we'll see.Last minute thoughts that I'll be thinking about tonight: do we need Transformations to be objects? A Transformation with both a translation and rotation would act on affines differently from vectors, and they would also be parameterized by coordinate system. (The vectors in ROOT's
Math
library have this.) Then would there be an array of Transformations to go along with an individual Transformation, like arrays? I'll have to think about whether that makes things easier or harder.Beta Was this translation helpful? Give feedback.
All reactions