# NAME

Math::Bacovia::Fraction - Represents a symbolic fraction.

# SYNOPSIS

``````    use 5.014;
use Math::Bacovia qw(Fraction Symbol);

my \$f = Fraction(Symbol('a'), Symbol('b'));
my \$g = Fraction(Symbol('x'), Symbol('y'));

say ((\$f + \$g)->pretty);    #=> (((a * y) + (x * b))/(b * y))``````

# METHODS

This section describes the methods provided by the Math::Bacovia::Fraction module.

## new

``    my \$obj = Math::Bacovia::Fraction->new(\$numerator, \$denominator);``

Constructs and returns a new Math::Bacovia::Fraction object.

## get

``    my (\$numerator, \$denominator) = \$obj->get;``

Returns the internal values of the self-object.

``````    \$x + \$y

Sum of `x` and `y`, using the identity:

``    a/b + c/d = (a*d + c*b) / (b*d)``

## sub

``````    \$x - \$y
\$x->sub(\$y)``````

Subtraction of `y` from `x`, using the identity:

``    a/b - c/d = (a*d - c*b) / (b*d)``

## mul

``````    \$x * \$y
\$x->mul(\$y)``````

Product of `x` and `y`, using the identity:

``    (a/b) * (c/d) = (a*c) / (b*d)``

## div

``````    \$x / \$y
\$x->div(\$y)``````

Division of `x` by `y`, using the identity:

``    (a/b) / (c/d) = (a*d) / (b*c)``

## inv

``    \$x->inv``

Multiplicative inverse of `x`, using the identity:

``    1/(a/b) = b/a``

## eq

``````    \$x == \$y
\$x->eq(\$y)``````

Return a true value when `x` and `y` are symbolically equal.

# SPECIAL METHODS

This section describes the special methods provided by the Math::Bacovia::Fraction module.

## alternatives

``````    my @alt = \$obj->alternatives;
my @alt = \$obj->alternatives(full => 1);``````

This method uses common mathematical identities to create symbolically equivalent expressions from the self-expression.

## pretty

``    my \$str = \$obj->pretty;``

Returns a human-readable stringification of the self-expression.

## stringify

``    my \$str = \$obj->stringify;``

Returns a stringification of the self-expression.

## numeric

``    my \$num = \$obj->numeric;``

Evaluates the self-expression numerically and returns a Math::AnyNum object.

The other parts of Math::Bacovia:

# AUTHOR

Daniel Șuteu, `<trizen at protonmail.com>`

# BUGS

Please report any bugs or feature requests to https://github.com/trizen/Math-Bacovia. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

# SUPPORT

You can find documentation for this module with the perldoc command.

``    perldoc Math::Bacovia::Fraction``

You can also look for information at:

This program is free software; you can redistribute it and/or modify it under the terms of the the Artistic License (2.0). You may obtain a copy of the full license at: