pub struct QuadraticEquation<T> { /* private fields */ }
Expand description
A struct for storing quadratic equations of the form f(x) = ax² + bx + c
.
Implementations§
source§impl<T: Copy + Clone + From<u8> + TryFrom<f64> + PartialEq + PartialOrd + NumTools<T> + Mul<Output = T> + Add<Output = T> + Sub<Output = T> + Div<Output = T> + Neg<Output = T>> QuadraticEquation<T>
impl<T: Copy + Clone + From<u8> + TryFrom<f64> + PartialEq + PartialOrd + NumTools<T> + Mul<Output = T> + Add<Output = T> + Sub<Output = T> + Div<Output = T> + Neg<Output = T>> QuadraticEquation<T>
sourcepub fn new() -> QuadraticEquation<T>
pub fn new() -> QuadraticEquation<T>
Create a new QuadraticEquation
with the values a = 1, b = 0, c = 0
.
Examples
use lib_rapid::math::equations::quadratic::QuadraticEquation;
let mut f_x = QuadraticEquation::new_from_coefficients(1.0, 0.0, 0.0);
f_x.get_vertex();
f_x.get_solutions();
assert_eq!(QuadraticEquation::new(), f_x);
use lib_rapid::math::equations::quadratic::QuadraticEquation;
let mut f_x = QuadraticEquation::new_from_coefficients(1.0, 0.0, -1.5);
assert_eq!("1x^2 + 0x - 1.5", &f_x.to_string());
sourcepub fn new_from_coefficients(a: T, b: T, c: T) -> QuadraticEquation<T>
pub fn new_from_coefficients(a: T, b: T, c: T) -> QuadraticEquation<T>
Create a new QuadraticEquation
from coefficients.
Examples
use lib_rapid::math::equations::quadratic::QuadraticEquation;
let mut f_x = QuadraticEquation::new_from_coefficients(1.0, 0.0, 0.0);
f_x.get_vertex();
f_x.get_solutions();
assert_eq!(QuadraticEquation::new(), f_x);
sourcepub fn set_b(&mut self, value: T)
pub fn set_b(&mut self, value: T)
Set b
of a QuadraticEquation
.
Examples
use lib_rapid::math::equations::quadratic::QuadraticEquation;
let mut f_x = QuadraticEquation::new_from_coefficients(1.0, -2.0, -3.0);
assert_eq!(-2.0, f_x.b());
f_x.set_b(-1.0);
assert_eq!(-1.0, f_x.b());
sourcepub fn set_c(&mut self, value: T)
pub fn set_c(&mut self, value: T)
Set c
of a QuadraticEquation
.
Examples
use lib_rapid::math::equations::quadratic::QuadraticEquation;
let mut f_x = QuadraticEquation::new_from_coefficients(1.0, -2.0, -3.0);
assert_eq!(-3.0, f_x.c());
f_x.set_c(-1.0);
assert_eq!(-1.0, f_x.c());
sourcepub fn get_solutions(&mut self) -> (Option<T>, Option<T>)
pub fn get_solutions(&mut self) -> (Option<T>, Option<T>)
sourcepub fn intsect_with(
&self,
other: &QuadraticEquation<T>
) -> (Option<(T, T)>, Option<(T, T)>)
pub fn intsect_with( &self, other: &QuadraticEquation<T> ) -> (Option<(T, T)>, Option<(T, T)>)
Get the intersection point(s) between self
and other
.
Returns (None, None)
if both arguments are equal.
Arguments
self
.other: &QuadraticEquation
.
Returns
A (Option<(T, T)>, Option<(T, T)>)
tuple.
use lib_rapid::math::equations::quadratic::QuadraticEquation;
let mut f_x = QuadraticEquation::new_from_coefficients(1.0, 2.0, 0.0);
let mut g_x = QuadraticEquation::new_from_coefficients(1.0, 2.0, 0.0);
let mut h_x = QuadraticEquation::new_from_coefficients(0.5, 1.0, 0.0);
assert_eq!( (None, None), f_x.intsect_with(&g_x));
assert_eq!( (Some( (0.0, 0.0) ), Some( (-2.0, 0.0) )), g_x.intsect_with(&h_x) );
sourcepub fn intsect_with_linear(
&self,
other: &LinearEquation<T>
) -> (Option<(T, T)>, Option<(T, T)>)
pub fn intsect_with_linear( &self, other: &LinearEquation<T> ) -> (Option<(T, T)>, Option<(T, T)>)
Get the intersection point(s) between self
and a linear equation if there is some.
Arguments
self
.other: &LinearEquation
.
Returns
A (Option<(T, T)>, Option<(T, T)>)
tuple.
use lib_rapid::math::equations::linear::LinearEquation;
use lib_rapid::math::equations::quadratic::QuadraticEquation;
let mut f_x = LinearEquation::new(2.0, 2.0);
let mut g_x = QuadraticEquation::new_from_coefficients(1.2, 2.0, -2.0);
assert_eq!( ( Some((1.8257418583505536, 5.651483716701107)),
Some((-1.8257418583505536, -1.6514837167011072)) ),
g_x.intsect_with_linear(&f_x));
sourcepub fn get_vertex(&mut self) -> (T, T)
pub fn get_vertex(&mut self) -> (T, T)
sourcepub fn get_derivative(&mut self) -> LinearEquation<T>
pub fn get_derivative(&mut self) -> LinearEquation<T>
Get the derivative of a QuadraticEquation<T>
. The derivative is the graph of the
development of the slope for a given function self
.
Returns
A LinearEquation<T>
.
Examples
use lib_rapid::math::equations::quadratic::QuadraticEquation;
use lib_rapid::math::equations::linear::LinearEquation;
let mut f_x = QuadraticEquation::new_from_coefficients(1.0, -2.0, 3.0);
assert_eq!(LinearEquation::new(2.0, -2.0), f_x.get_derivative());
Trait Implementations§
source§impl<T: Clone> Clone for QuadraticEquation<T>
impl<T: Clone> Clone for QuadraticEquation<T>
source§fn clone(&self) -> QuadraticEquation<T>
fn clone(&self) -> QuadraticEquation<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<T: Debug> Debug for QuadraticEquation<T>
impl<T: Debug> Debug for QuadraticEquation<T>
source§impl<T: Display + Neg<Output = T> + PartialOrd + From<u8> + Copy> Display for QuadraticEquation<T>
impl<T: Display + Neg<Output = T> + PartialOrd + From<u8> + Copy> Display for QuadraticEquation<T>
source§impl<T: Add<Output = T> + Sub<Output = T> + Mul<Output = T> + Div<Output = T> + PartialOrd + Neg<Output = T> + From<u8> + Copy + SubAssign + AddAssign + MulAssign + TryFrom<f64> + Display, const C: usize> From<Polynomial<C, T>> for QuadraticEquation<T>
impl<T: Add<Output = T> + Sub<Output = T> + Mul<Output = T> + Div<Output = T> + PartialOrd + Neg<Output = T> + From<u8> + Copy + SubAssign + AddAssign + MulAssign + TryFrom<f64> + Display, const C: usize> From<Polynomial<C, T>> for QuadraticEquation<T>
source§fn from(val: Polynomial<C, T>) -> Self
fn from(val: Polynomial<C, T>) -> Self
Converts to this type from the input type.
source§impl<T: PartialEq> PartialEq for QuadraticEquation<T>
impl<T: PartialEq> PartialEq for QuadraticEquation<T>
source§fn eq(&self, other: &QuadraticEquation<T>) -> bool
fn eq(&self, other: &QuadraticEquation<T>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl<T: Copy> Copy for QuadraticEquation<T>
impl<T> StructuralPartialEq for QuadraticEquation<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for QuadraticEquation<T>where
T: RefUnwindSafe,
impl<T> Send for QuadraticEquation<T>where
T: Send,
impl<T> Sync for QuadraticEquation<T>where
T: Sync,
impl<T> Unpin for QuadraticEquation<T>where
T: Unpin,
impl<T> UnwindSafe for QuadraticEquation<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more