mathmaker
0.4(alpha)
|
Quotient of two numeric Sums and/or Products. More...
Public Member Functions | |
def | __init__ |
Constructor. | |
def | get_status |
Returns the Fraction's status. | |
def | get_same_deno_reduction_in_progress |
Returns the Fraction's status. | |
def | get_simplification_in_progress |
Returns True if Fraction's status is simplification_in_progress. | |
def | set_status |
Sets the numerator of the object def set_numerator(self, arg): if not isinstance(arg, Exponented): raise error.WrongArgument(str(type(arg)), "an Exponented") | |
def | set_same_deno_reduction_in_progress |
Sets the Fraction's status. | |
def | set_down_numerator_s_minus_sign |
Sets the sign of the fraction and of numerator in the case. | |
def | evaluate |
Returns the value of a numerically evaluable object. | |
def | calculate_next_step |
Returns None|The Fraction in the next step of simplification. | |
def | expand_and_reduce_next_step |
Same as calculate_next_step in the case of Fractions. | |
def | dbg_str |
Raw display of the Fraction (debugging method) | |
def | __cmp__ |
Compares two Fractions. | |
def | simplification_line |
Simplification line of a fraction i.e. | |
def | replace_striked_out |
Replace the striked out Items by Item(1) | |
def | simplified |
Returns the fraction after a simplification step. | |
def | completely_reduced |
Returns the fraction after all simplification steps. | |
def | is_reducible |
True if the fraction is reducible So if numerator and denominator *are numeric Products* with both exponent 1 both and their GCD is strictly greater than 1. | |
def | is_a_decimal_number |
True if the Fraction is a decimal number. | |
Public Attributes | |
sign | |
numerator | |
denominator | |
exponent | |
Properties | |
status | |
simplification_in_progress | |
same_deno_reduction_in_progress |
Quotient of two numeric Sums and/or Products.
Definition at line 2628 of file base_calculus.py.
def core.base_calculus.Fraction.__init__ | ( | self, | |
arg, | |||
options | |||
) |
Constructor.
arg | Fraction|(num,den)|(sign,num,den)|(sign,num,den,exponent)| (RANDOMLY, sign, num_sign, num_max, deno_sign, deno_max)| zero-degree-Monomial having a Fraction as coefficient |
**options | copy_other_fields_from=<Fraction> -> can be used with (num, den) to get all the other fields from the given Fraction (including sign) |
Reimplemented from core.base_calculus.Quotient.
Definition at line 2648 of file base_calculus.py.
References core.base_calculus.Quotient._denominator, core.base_calculus.Fraction._denominator, core.base_calculus.Item._exponent, core.base_calculus.Function._exponent, core.base_calculus.Quotient._exponent, core.base_calculus.Fraction._exponent, core.base_calculus.Quotient._numerator, core.base_calculus.Fraction._numerator, core.base_calculus.Fraction._same_deno_reduction_in_progress, core.base_calculus.Item._sign, core.base_calculus.Function._sign, core.base_calculus.SquareRoot._sign, core.base_calculus.Quotient._sign, core.base_calculus.Fraction._sign, core.base_calculus.Fraction._status, core.base_calculus.Operation._symbol, core.base_calculus.Quotient._symbol, core.base_calculus.Fraction._symbol, core.base.Clonable.clone(), core.base_calculus.Quotient.denominator, core.base_calculus.Fraction.denominator, core.base_calculus.Quotient.numerator, and core.base_calculus.Fraction.numerator.
Referenced by core.calculus.Equation.__init__(), and core.root_calculus.Value.substitute().
def core.base_calculus.Fraction.__cmp__ | ( | self, | |
obj | |||
) |
Compares two Fractions.
Definition at line 3182 of file base_calculus.py.
References core.base_calculus.Quotient.denominator, core.base_calculus.Fraction.denominator, core.base_calculus.Item.exponent, core.base_calculus.Fraction.exponent, core.base_calculus.Quotient.numerator, core.base_calculus.Fraction.numerator, core.base_calculus.Item.sign, core.base_calculus.SquareRoot.sign, core.base_calculus.Quotient.sign, and core.base_calculus.Fraction.sign.
def core.base_calculus.Fraction.calculate_next_step | ( | self, | |
options | |||
) |
Returns None|The Fraction in the next step of simplification.
Should be less cases... check source
Reimplemented from core.base_calculus.Quotient.
Definition at line 2992 of file base_calculus.py.
References core.base_calculus.Item.dbg_str(), core.base_calculus.SquareRoot.dbg_str(), core.base_calculus.Quotient.dbg_str(), core.base_calculus.Fraction.dbg_str(), core.base_calculus.Quotient.denominator, core.base_calculus.Fraction.denominator, core.base_calculus.Fraction.evaluate(), core.root_calculus.Signed.get_sign(), core.root_calculus.Value.get_sign(), core.base_calculus.Quotient.get_sign(), core.base_calculus.CommutativeOperation.get_sign(), core.base_calculus.Monomial.get_sign(), core.base_calculus.Fraction.is_reducible(), core.base_calculus.Quotient.numerator, core.base_calculus.Fraction.numerator, core.base_calculus.Fraction.same_deno_reduction_in_progress, core.root_calculus.Signed.set_sign(), core.root_calculus.Value.set_sign(), core.base_calculus.CommutativeOperation.set_sign(), core.base_calculus.Item.sign, core.base_calculus.SquareRoot.sign, core.base_calculus.Quotient.sign, core.base_calculus.Fraction.sign, core.base_calculus.Fraction.simplification_in_progress, core.base_calculus.Fraction.simplification_line(), and core.base_calculus.Fraction.simplified().
Referenced by core.base_calculus.CommutativeOperation.evaluate(), core.base_calculus.Fraction.expand_and_reduce_next_step(), core.base_calculus.Product.expand_and_reduce_next_step(), and core.base_calculus.Sum.expand_and_reduce_next_step().
def core.base_calculus.Fraction.dbg_str | ( | self, | |
options | |||
) |
Raw display of the Fraction (debugging method)
options | No option available so far |
Reimplemented from core.base_calculus.Quotient.
Definition at line 3163 of file base_calculus.py.
References core.base_calculus.Item.sign, core.base_calculus.SquareRoot.sign, core.base_calculus.Quotient.sign, and core.base_calculus.Fraction.sign.
Referenced by core.base_calculus.Polynomial.__init__(), core.base_calculus.Fraction.calculate_next_step(), core.base_calculus.CommutativeOperation.evaluate(), core.base_calculus.Product.expand_and_reduce_next_step(), core.base_calculus.Sum.expand_and_reduce_next_step(), core.base_calculus.Product.get_factors_list(), core.base_calculus.Product.get_factors_list_except(), core.base_calculus.Product.into_str(), core.base_calculus.Product.reduce_(), core.base_calculus.Sum.reduce_(), core.base_calculus.CommutativeOperation.remove(), core.base_calculus.Fraction.replace_striked_out(), core.root_calculus.Signed.set_opposite_sign(), core.root_calculus.Value.set_opposite_sign(), core.base_calculus.Fraction.simplification_line(), core.base_calculus.Fraction.simplified(), and core.calculus.Equation.solve_next_step().
Returns the Fraction's status.
Definition at line 2843 of file base_calculus.py.
References core.base_calculus.Fraction._same_deno_reduction_in_progress.
Returns True if Fraction's status is simplification_in_progress.
Definition at line 2854 of file base_calculus.py.
References core.base_calculus.Quotient.denominator, core.base_calculus.Fraction.denominator, core.base_calculus.Quotient.numerator, and core.base_calculus.Fraction.numerator.
def core.base_calculus.Fraction.get_status | ( | self | ) |
Returns the Fraction's status.
Definition at line 2832 of file base_calculus.py.
References core.base_calculus.Fraction._status.
def core.base_calculus.Fraction.is_reducible | ( | self | ) |
True if the fraction is reducible So if numerator and denominator *are numeric Products* with both exponent 1 both and their GCD is strictly greater than 1.
If any of denominator or numerator is an Item, then it is embedded by this method in a Product to allow the further simplification of the Fraction
Definition at line 3652 of file base_calculus.py.
References core.base_calculus.Quotient.denominator, core.base_calculus.Fraction.denominator, core.root_calculus.Evaluable.is_numeric(), core.base_calculus.Item.is_numeric(), core.root_calculus.Value.is_numeric(), core.base_calculus.SquareRoot.is_numeric(), core.base_calculus.Operation.is_numeric(), core.calculus.Table.is_numeric(), core.base_calculus.Monomial.is_numeric(), core.base_calculus.Quotient.numerator, core.base_calculus.Fraction.numerator, core.base_calculus.Quotient.set_denominator(), and core.base_calculus.Quotient.set_numerator().
Referenced by core.base_calculus.Fraction.calculate_next_step(), core.base_calculus.Product.expand_and_reduce_next_step(), and core.base_calculus.Fraction.simplification_line().
Sets the sign of the fraction and of numerator in the case.
of this example : +{-2}/{5} (nothing to compute just the minus sign to put "down"
Definition at line 2954 of file base_calculus.py.
References core.base_calculus.Quotient.denominator, core.base_calculus.Fraction.denominator, core.root_calculus.Signed.get_sign(), core.root_calculus.Value.get_sign(), core.base_calculus.Quotient.get_sign(), core.base_calculus.CommutativeOperation.get_sign(), core.base_calculus.Monomial.get_sign(), core.base_calculus.Quotient.numerator, core.base_calculus.Fraction.numerator, core.root_calculus.Signed.set_sign(), core.root_calculus.Value.set_sign(), and core.base_calculus.CommutativeOperation.set_sign().
def core.base_calculus.Fraction.set_status | ( | self, | |
arg | |||
) |
Sets the numerator of the object def set_numerator(self, arg): if not isinstance(arg, Exponented): raise error.WrongArgument(str(type(arg)), "an Exponented")
if isinstance(arg, Product): self._numerator = arg.clone() Sets the denominator of the object def set_denominator(self, arg): if not isinstance(arg, Exponented): raise error.WrongArgument(str(type(arg)), "an Exponented") Sets the Fraction's status
Definition at line 2923 of file base_calculus.py.
References core.base_calculus.Fraction._status.
def core.base_calculus.Fraction.simplification_line | ( | self | ) |
Simplification line of a fraction i.e.
Factorization of numerator and denominator in the right smaller numbers Products.
Add an option to __init__ to allow "inserting Products": see code
maybe the case of Item having a negative *value* has not been managed. I mean, Items like ±(-2)
Definition at line 3211 of file base_calculus.py.
References core.base.Clonable.clone(), core.base_calculus.Fraction.dbg_str(), core.base_calculus.Quotient.denominator, core.base_calculus.Fraction.denominator, core.base_calculus.Quotient.get_sign(), core.base_calculus.Fraction.is_reducible(), core.base_calculus.Quotient.numerator, core.base_calculus.Fraction.numerator, core.root_calculus.Signed.set_sign(), core.root_calculus.Value.set_sign(), core.base_calculus.CommutativeOperation.set_sign(), core.base_calculus.Item.sign, core.base_calculus.SquareRoot.sign, core.base_calculus.Quotient.sign, and core.base_calculus.Fraction.sign.
Referenced by core.base_calculus.Fraction.calculate_next_step(), and core.base_calculus.Fraction.simplified().
core::base_calculus.Fraction::same_deno_reduction_in_progress [static] |
property(
get_same_deno_reduction_in_progress,
doc = "Fraction's same_deno_reduction_in_progress field")
Definition at line 2878 of file base_calculus.py.
Referenced by core.base_calculus.Fraction.calculate_next_step().
core::base_calculus.Fraction::simplification_in_progress [static] |
property(get_simplification_in_progress, doc = "Fraction's simplification_" \ + "in_progress status")
Definition at line 2874 of file base_calculus.py.
Referenced by core.base_calculus.Fraction.calculate_next_step(), and core.base_calculus.Fraction.simplified().
core::base_calculus.Fraction::status [static] |
property(get_status,
doc = "Fraction's status")
Definition at line 2871 of file base_calculus.py.