Sébastien Crozet
a54c42229b
Update to the last Rust: remove the float type.
2013-10-02 11:52:10 +02:00
Sébastien Crozet
c344be7351
Minor doc improvements.
2013-09-26 17:19:42 +02:00
Sébastien Crozet
b61d621090
Update to the last Rust.
2013-09-26 17:05:11 +02:00
Sébastien Crozet
4ffe274b03
Add mean and covariance computation for DMat.
...
This also fixes the transposition for rectangular DMat, and add scalar
addition/subtraction/multiplication/division for DMat.
2013-09-22 15:47:53 +02:00
Sébastien Crozet
7de844b46a
Moved some files + use rustdoc_ng to generate the documenatiton.
...
Trait failes are merged in three files:
* operations.rs - for low-level matrix/vector operations
* geometry.rs - for operations with a clear, broadly known geometric meaning.
* structure.rs - for operations to access/alter the object inner structures.
Specialisations are moved to the `spec` folder.
2013-09-22 11:05:15 +02:00
Sébastien Crozet
9a9de20b8a
Remove the redundant Column
trait + Add unchecked access indexing to dynamic matrices/vectors.
2013-09-20 22:17:55 +02:00
Sébastien Crozet
6dc8139794
"Remove" the RMul and LMul trait. Use the regular Mul trait.
...
Those traits are not really removed since they are useful on generic code (to work around curret
limitations of rust traits system).
2013-09-15 11:18:06 +02:00
Sébastien Crozet
514bf74efe
"Replaced" Scalar{Add, Sub, Mul, Div} by operator overloading.
...
Those traits are not really removed since rust cannot handle those multiple operator overloading
very well yet, making them sometimes unuseable on generic code.
2013-09-14 21:32:38 +02:00
Sébastien Crozet
6f81fc6d5c
Add Absolute
, Col
, Mat
, AbsoluteRotate
traits.
...
Traits like `AbsoluteRotate` and `RotationWithTranslation` have been moved to a `comp` folder
containing any trait providing operations which are combination of several traits.
2013-09-13 10:26:19 +02:00
Sébastien Crozet
bdf82748dc
Add a Dot
and a Norm
trait for vectors having a dot product and a norm.
...
Those methods are not part of the `Vec` and `AlgebraicVec` traits any more.
2013-09-08 18:20:06 +02:00
Sébastien Crozet
2ccd62d558
Add methods to set the translation/rotation/transformation directly.
2013-09-06 08:48:08 +02:00
Sébastien Crozet
539e34c2bf
Move all the rotation-related free functions to a RotationWithTranslation
trait.
...
This is not a very good name though.
2013-09-04 17:07:56 +02:00
Sébastien Crozet
82ddda154f
Update to work with the last compiler.
...
Because of the unfortunate changes on type parameters resolution:
- the Dim trait now needs an useless parameter to infer the Self type.
- ApproxEps::epsilon() is broken.
2013-08-28 14:22:12 +02:00
Sébastien Crozet
7052aa88ee
Add two traits: CrossMatrix
and Row
.
...
CrossMatrix is a trait for vectors having a cross product representable as a matrix.
Row is a trait for Matrixces and Vectors, to access (by index) their rows.
2013-08-25 23:01:44 +02:00
Sébastien Crozet
833378d83f
Add and Identity
matrix type.
...
It implements most matrix traits but all its operations are no-ops.
2013-08-23 15:59:26 +02:00
Sébastien Crozet
6999444575
Merge the Rotatable, Translatable, Transformable traits with their corresponding Rotation, Translation, Transformation.
2013-08-22 17:47:37 +02:00
Sébastien Crozet
347883caa1
Rework of the traits for Vectors.
...
The goal is to make traits less fine-grained for vectors, and reduce the amount of `use`.
- Scalar{Mul, Div} are removed, replaced by Mul<N, V> and Div<N, V>,
- Ring and DivisionRing are removed. Use Num instead.
- VectorSpace, Dot, and Norm are removed, replaced by the new, higher-level traits.
Add four traits:
- Vec: common operations on vectors. Replaces VectorSpace and Dot.
- AlgebraicVec: Vec + the old Norm trait.
- VecExt: Vec + every other traits vectors implement.
- AlgebraicVecExt: AlgebraicVec + VecExt.
2013-08-18 18:33:25 +02:00
Sébastien Crozet
cead4f8410
Moved DivisionRing to ring.rs.
2013-08-17 17:50:01 +02:00
Sébastien Crozet
344d761be5
Add the ability to stop the basis internal itertors.
2013-08-17 10:48:45 +02:00
Sébastien Crozet
d8db04cce5
Changed the UniformSphereSample trait to return a borrowed vector.
2013-08-16 18:08:51 +02:00
Sébastien Crozet
5187a1a73f
Add Round
impl for vectors.
2013-08-15 10:41:47 +02:00
Sébastien Crozet
a69f43bccd
Remove some unneded visibility modifiers.
2013-08-14 09:43:02 +02:00
Sébastien Crozet
b08a8384ae
Add outer product.
2013-08-12 16:45:31 +02:00
Sébastien Crozet
3858c63291
Update to work with the last Rust api.
2013-08-11 16:07:34 +02:00
Sébastien Crozet
c59911168e
Fix curly braces.
2013-08-05 10:13:44 +02:00
Sébastien Crozet
a810bf6008
Indentation fixes.
2013-08-05 09:44:56 +02:00
Sébastien Crozet
e75fe80966
Add documentation.
2013-07-24 16:50:40 +02:00
Sébastien Crozet
321574a827
from_homogeneous -> from
2013-07-23 23:26:47 +02:00
Sébastien Crozet
e2f34023ed
Add traits MatCast and VecCast.
...
VecCast casts a Vec<N1> to a Vec<N2> with N1 and N2 bounded by NumCast.
MatCast casts a Mat<N1> to a Mat<N2> with N1 and N2 bounded by NumCast.
2013-07-22 23:42:35 +02:00
Sébastien Crozet
cf216f9b90
Removed occurences of copy/Copy + improved api.
...
Now, access to vector components are x, y, z, w, a, b, ... instead of at[i].
The method at(i) has the same (read only) effect as the old at[i].
Now, access to matrix components are m11, m12, ... instead of mij[offset(i, j)]...
The method at((i, j)) has the same effect as the old mij[offset(i, j)].
Automatic implementation of all traits the compiler supports has been added on the #[deriving]
clause for both matrices and vectors.
2013-07-20 15:07:49 +02:00
Sébastien Crozet
8918cb5d7e
invert -> inplace_inverse to avoid name clash with iterators.
2013-07-13 13:34:41 +00:00
Sébastien Crozet
6f081b70b8
Add sphere sempling trait + Copy becomes Clone
2013-07-04 14:23:08 +00:00
Sébastien Crozet
68d601a642
Basis trait now uses internal iterators to avoid allocations.
2013-07-01 16:33:22 +00:00
Sébastien Crozet
02e22717a4
More rotation sugar.
2013-06-29 19:02:51 +00:00
Sébastien Crozet
f8515f4683
Add rotation wrt center of a matrix.
2013-06-29 18:59:04 +00:00
Sébastien Crozet
3bb470ac95
Add Column + Homogeneous + Indexable traits.
...
Column: to access a matrix column.
Homogeneous: to convert a matrix/vector from/to homogenous coordinates.
Indexable: to access a matrix/vector element using indices.
2013-06-29 11:40:31 +00:00
Sébastien Crozet
cd355dfb30
Refactor vec{1, 2, 3} implemenation + add some useful traits.
2013-06-28 21:03:40 +00:00
Sébastien Crozet
8abcdeeedc
#[inline(always)] -> #[inline]
2013-06-27 17:40:37 +00:00
Sébastien Crozet
6723693b49
Refined traits for rotation/translation/transformation.
2013-06-27 16:16:07 +00:00
Sébastien Crozet
ffbcf4882a
Removed a lot of Copy + made Rotation and Translation more flexible.
2013-06-26 20:56:30 +00:00
Sébastien Crozet
edc5bb616d
Removed some useless references.
2013-06-24 21:38:52 +00:00
Sébastien Crozet
caee7eb423
workarounds -> traits. All ICE are now compiler errors.
2013-06-15 20:16:44 +00:00
Sébastien Crozet
6e627f3378
Add Ord instances.
2013-06-15 18:06:13 +00:00
Sébastien Crozet
513d4d7b08
Add inlining pragmas.
2013-06-13 16:48:28 +00:00
Sébastien Crozet
4cc5b178c8
Add DeltaTransformVector tait and fix transformation.
2013-06-13 14:44:15 +00:00
Sébastien Crozet
fb20ffdf8b
Add automatic implementation of VectorSpace.
2013-06-11 11:03:16 +02:00
Sébastien Crozet
53486fe614
Changed flattening function names.
2013-06-10 09:46:42 +02:00
Sébastien Crozet
4c65f793e8
Add flatten trait.
2013-06-10 00:09:36 +00:00
Sébastien Crozet
c02edb9d09
Used a better type parametter name.
2013-06-09 23:36:47 +00:00
Sébastien Crozet
e9948f55d0
Add rotation wrt a point.
2013-06-06 22:57:07 +00:00
Sébastien Crozet
0b8058e88f
Adapted for the compiler 'incomming' branch.
2013-06-01 20:50:00 +02:00
Sébastien Crozet
a77013e4c7
Use automatic ToStr deriving for everything.
2013-05-25 18:30:03 +00:00
Sébastien Crozet
898a87b46c
Add SubDot trait and basic implementations.
2013-05-25 13:51:51 +00:00
Sébastien Crozet
2b9dc1d2e3
Fix comment.
2013-05-21 23:20:09 +00:00
Sébastien Crozet
3fa933d13f
Add comments and adapted to new rust syntax.
2013-05-21 22:46:33 +00:00
Sébastien Crozet
4312daa53c
Removed the triginometric trait workaround.
2013-05-20 10:02:02 +00:00
Sébastien Crozet
f3ed302874
Add delta-transformation.
2013-05-19 19:45:04 +00:00
Sébastien Crozet
dc0757b2e5
Add rotation and translation traits.
2013-05-19 11:44:27 +00:00
Sébastien Crozet
01d37a1b56
Refined ScalaOp trait.
2013-05-18 18:06:36 +00:00
Sébastien Crozet
890cdb73f2
Add tests and basis generation.
2013-05-18 17:04:03 +00:00
Sébastien Crozet
98b484c311
Fix readme for workarounds.
2013-05-17 22:13:07 +00:00
Sébastien Crozet
7a58f2c66a
Add comments for traits.
2013-05-16 21:59:41 +00:00
Sébastien Crozet
d636fdd346
Add matrix adaptors and addapted to the now rust features.
2013-05-16 21:30:39 +00:00
Sébastien Crozet
30d82f2408
Add n-dimensional vector and matrix.
2013-05-15 00:18:13 +00:00
Sébastien Crozet
4582492fda
Addesome traits and configuration file.
2013-05-14 21:08:29 +00:00
Sébastien Crozet
8b18310c3c
Add basic operations.
2013-05-14 11:35:01 +00:00