FourVec

Struct FourVec 

Source
pub struct FourVec { /* private fields */ }
Expand description

Four Vector

Implementations§

Source§

impl FourVec

Source

pub fn new(m0: f64, m1: f64, m2: f64, m3: f64) -> FourVec

Returns a new FourVec from four f64s

§Arguments
  • m0 - f64
  • m1 - f64
  • m2 - f64
  • m3 - f64
§Example
use calcify::FourVec;
let vec4 = FourVec::new(1.0,2.0,3.0,4.0);
Source

pub fn from(slice: &[f64]) -> FourVec

Returns a new FourVec from a slice

§Arguments
§Example
use calcify::FourVec;
let vec4: FourVec = FourVec::from(&[1.0,1.0,1.0,1.0]);
§Panics
  • slice length < 4
Source

pub fn from_3vec(t: f64, x: ThreeVec) -> FourVec

Returns a new FourVec from one f64 and a ThreeVec

§Arguments
  • t - f64
  • x - calcify::ThreeVec
§Example
use calcify::FourVec;
use calcify::ThreeVec;

let vec4 = FourVec::from_3vec(1.0,ThreeVec::new(2.0,3.0,4.0));
Source

pub fn m0(&self) -> &f64

Returns a reference to the first element of the vector

§Example
use calcify::FourVec;
let vec4 = FourVec::new(1.0,2.0,3.0,4.0);
let element_zero: f64 = *vec4.m0();
assert_eq!(element_zero,1.0);
Source

pub fn m1(&self) -> &f64

Returns a reference to the second element of the vector

§Example
use calcify::FourVec;
let vec4 = FourVec::new(1.0,2.0,3.0,4.0);
let element_one: f64 = *vec4.m1();
assert_eq!(element_one,2.0);
Source

pub fn m2(&self) -> &f64

Returns a reference to the third element of the vector

§Example
use calcify::FourVec;
let vec4 = FourVec::new(1.0,2.0,3.0,4.0);
let element_two: f64 = *vec4.m2();
assert_eq!(element_two,3.0);
Source

pub fn m3(&self) -> &f64

Returns a reference to the forth element of the vector

§Example
use calcify::FourVec;
let vec4 = FourVec::new(1.0,2.0,3.0,4.0);
let element_three: f64 = *vec4.m3();
assert_eq!(element_three,4.0);
Source

pub fn cov(self) -> FourVec

Returns the covariant vector with metric [1,-1,-1,-1].

§Example
use calcify::FourVec;
let vec4 = FourVec::new(1.0,2.0,3.0,4.0);
let cov_vec4: FourVec = vec4.cov();
assert_eq!(cov_vec4,FourVec::new(1.0,-2.0,-3.0,-4.0));

assert_eq!(vec4.cov()*vec4, -28.0)
Source

pub fn s2(&self) -> Sinv

Returns the space-time invariant classification S^2 of a space-time vector. Returns a variant of the calcify::Sinv enum

§Example
use calcify::FourVec;
use calcify::Sinv;
let vec4 = FourVec::new(10.0,2.0,2.0,2.0);
let ss: Sinv = vec4.s2();
assert_eq!(ss,Sinv::TimeLike);
Source

pub fn s(&self) -> f64

Returns the invariant of the FourVec.

§Example
use calcify::FourVec;
let vec4 = FourVec::new(1.0,0.0,0.0,0.0);
assert_eq!(vec4.s(),1.0);

Trait Implementations§

Source§

impl Add for FourVec

Source§

type Output = FourVec

The resulting type after applying the + operator.
Source§

fn add(self, other: FourVec) -> FourVec

Performs the + operation. Read more
Source§

impl AddAssign for FourVec

Source§

fn add_assign(&mut self, other: FourVec)

Performs the += operation. Read more
Source§

impl Clone for FourVec

Source§

fn clone(&self) -> FourVec

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FourVec

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deserializable for FourVec

Source§

fn from_json(s: &str) -> Result<Self, Box<dyn Error>>

Return Self from string
Source§

fn from_msg(bytes: &[u8]) -> Result<(Self, &[u8]), Box<dyn Error>>

Return a tuple of Self and a &u8 of remaining unparsed bytes from a byte array
Source§

impl Display for FourVec

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Mul<FourVec> for FourMat

Source§

fn mul(self, other: FourVec) -> FourVec

Matrix multiplication with vector

§Note

Only works in one direction FourMat*FourVec, implying FourVec as a column vector.

§Example
use calcify::FourMat;
use calcify::FourVec;

let mat4 = FourMat::new(FourVec::new(1.0,2.0,3.0,4.0),
                            FourVec::new(1.0,2.0,3.0,4.0),
                            FourVec::new(1.0,2.0,3.0,4.0),
                            FourVec::new(1.0,2.0,3.0,4.0));

assert_eq!(
    mat4*FourVec::new(2.0,2.0,2.0,2.0),
    FourVec::new(20.0,20.0,20.0,20.0)
);
Source§

type Output = FourVec

The resulting type after applying the * operator.
Source§

impl Mul<FourVec> for f64

Source§

type Output = FourVec

The resulting type after applying the * operator.
Source§

fn mul(self, vec: FourVec) -> FourVec

Performs the * operation. Read more
Source§

impl Mul<f64> for FourVec

Source§

type Output = FourVec

The resulting type after applying the * operator.
Source§

fn mul(self, coef: f64) -> FourVec

Performs the * operation. Read more
Source§

impl Mul for FourVec

Source§

fn mul(self, other: FourVec) -> f64

Standard scalar product,

§Example
use calcify::FourVec;
let vec4 = FourVec::new(2.0,2.0,2.0,2.0);

assert_eq!(
   vec4*vec4,
   16.0
);
Source§

type Output = f64

The resulting type after applying the * operator.
Source§

impl Neg for FourVec

Source§

type Output = FourVec

The resulting type after applying the - operator.
Source§

fn neg(self) -> FourVec

Performs the unary - operation. Read more
Source§

impl PartialEq for FourVec

Source§

fn eq(&self, other: &FourVec) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serializable for FourVec

Source§

fn to_json(&self) -> String

Return object intensive json string Read more
Source§

fn to_msg(&self) -> Result<Vec<u8>, ValueWriteError>

Return Result wrapped Vec in MsgPack Format is not like to_json it is array intensive not object Read more
Source§

impl Sub for FourVec

Source§

type Output = FourVec

The resulting type after applying the - operator.
Source§

fn sub(self, other: FourVec) -> FourVec

Performs the - operation. Read more
Source§

impl SubAssign for FourVec

Source§

fn sub_assign(&mut self, other: FourVec)

Performs the -= operation. Read more
Source§

impl Sum for FourVec

Source§

fn sum<I>(iter: I) -> FourVec
where I: Iterator<Item = FourVec>,

Takes an iterator and generates Self from the elements by “summing up” the items.
Source§

impl Copy for FourVec

Source§

impl StructuralPartialEq for FourVec

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.