mathmaker  0.4(alpha)
Public Member Functions | Public Attributes | Properties
core.base_calculus.Fraction Class Reference

Quotient of two numeric Sums and/or Products. More...

Inheritance diagram for core.base_calculus.Fraction:
core.base_calculus.Quotient core.base_calculus.Operation core.root_calculus.Exponented core.root_calculus.Signed core.root_calculus.Calculable core.root_calculus.Evaluable core.base.Printable core.base.NamedObject core.base.Clonable

List of all members.

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

Detailed Description

Quotient of two numeric Sums and/or Products.

Definition at line 2628 of file base_calculus.py.


Constructor & Destructor Documentation

def core.base_calculus.Fraction.__init__ (   self,
  arg,
  options 
)

Constructor.

Warning:
Can raise UncompatibleType.
Parameters:
argFraction|(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
**optionscopy_other_fields_from=<Fraction> -> can be used with (num, den) to get all the other fields from the given Fraction (including sign)
Todo:
? raise a division by zero error !
Returns:
One instance of Fraction

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().


Member Function Documentation

def core.base_calculus.Fraction.__cmp__ (   self,
  obj 
)
def core.base_calculus.Fraction.calculate_next_step (   self,
  options 
)

Returns None|The Fraction in the next step of simplification.

Todo:
Fix the 4th case.

Should be less cases... check source

Todo:
Fix the /!\ or check if the 3d CASE is not obsolete (duplicated in the simplified method)

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 
)

Returns the Fraction's status.

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.

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.

Returns the Fraction's status.

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.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.


Property Documentation

core::base_calculus.Fraction::same_deno_reduction_in_progress [static]
Initial value:
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]
Initial value:
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]
Initial value:
property(get_status,
                      doc = "Fraction's status")

Definition at line 2871 of file base_calculus.py.


The documentation for this class was generated from the following file: