mathhook_core/algebra/factor/
quadratic.rs

1//! Quadratic factoring and special patterns
2
3use crate::core::Expression;
4
5impl Expression {
6    /// Try to factor quadratic expressions: ax^2 + bx + c
7    pub(super) fn try_quadratic_factoring(&self, _terms: &[Expression]) -> Option<Expression> {
8        None
9    }
10
11    /// Factor perfect square trinomials: a^2 + 2ab + b^2 = (a + b)^2
12    pub fn factor_perfect_square(&self, terms: &[Expression]) -> Option<Expression> {
13        if terms.len() != 3 {
14            return None;
15        }
16
17        None
18    }
19
20    /// Factor difference of squares: a^2 - b^2 = (a + b)(a - b)
21    pub fn factor_difference_of_squares(&self, a: &Expression, b: &Expression) -> Expression {
22        Expression::mul(vec![
23            Expression::add(vec![a.clone(), b.clone()]),
24            Expression::add(vec![
25                a.clone(),
26                Expression::mul(vec![Expression::integer(-1), b.clone()]),
27            ]),
28        ])
29    }
30}