pub fn present(self) -> Expression {
        let last_self = self.clone();
        let simplified = self
            .strip()
            .divs_to_neg_exponents()
            .factor_out_neg()
            .factor_out_sub()
            .flatten()
            .remove_div_in_numer()
            .remove_div_in_denom()
            .remove_div_in_mul_node()
            .distribute_exponents()
            .flatten()
            .explicit_exponents()
            .collect_like_muls()
            .flatten()
            .simplify_exponents()
            .fold_constants()
            .explicit_coefficients()
            .collect_like_adds()
            .flatten()
            .simplify_exponents()
            .fold_constants()
            .distribute_exponents()
            .order();

        if simplified == last_self {
            simplified.neg_exponents_to_divs().present_phase_2()
        } else {
            simplified.present()
        }
    }
//An attempt at obtaining an easier to look at expression
An attempt at obtaining an easier to look at expression
An attempt at obtaining an easier to look at expression
pub fn present(self) -> Expression {
        let last_self = self.clone();
        let simplified = self
            .strip()
            .divs_to_neg_exponents()
            .factor_out_neg()
            .factor_out_sub()
            .flatten()
            .remove_div_in_numer()
            .remove_div_in_denom()
            .remove_div_in_mul_node()
            .distribute_exponents()
            .flatten()
            .explicit_exponents()
            .collect_like_muls()
            .flatten()
            .simplify_exponents()
            .fold_constants()
            .explicit_coefficients()
            .collect_like_adds()
            .flatten()
            .simplify_exponents()
            .fold_constants()
            .distribute_exponents()
            .order();
        if simplified == last_self {
            simplified.neg_exponents_to_divs().present_phase_2()
        } else {
            simplified.present()
        }
    }
pub fn present ( self ) -> Expression { let last_self = self . clone ( ) ; let simplified = self . strip ( ) . divs_to_neg_exponents ( ) . factor_out_neg ( ) . factor_out_sub ( ) . flatten ( ) . remove_div_in_numer ( ) . remove_div_in_denom ( ) . remove_div_in_mul_node ( ) . distribute_exponents ( ) . flatten ( ) . explicit_exponents ( ) . collect_like_muls ( ) . flatten ( ) . simplify_exponents ( ) . fold_constants ( ) . explicit_coefficients ( ) . collect_like_adds ( ) . flatten ( ) . simplify_exponents ( ) . fold_constants ( ) . distribute_exponents ( ) . order ( ) ; if simplified == last_self { simplified . neg_exponents_to_divs ( ) . present_phase_2 ( ) } else { simplified . present ( ) } }
An attempt at obtaining an easier to look at expression
An attempt at obtaining an easier to look at expression
self
self