NAME

Math::Bacovia::Difference - Represents a symbolic difference.

SYNOPSIS

use 5.014;
use Math::Bacovia qw(Difference Symbol);

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

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

METHODS

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

new

my \$obj = Math::Bacovia::Difference->new(\$minuend, \$subtrahend);

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

get

my (\$minuend, \$subtrahend) = \$obj->get;

Returns the internal values of the self-object.

\$x + \$y

Addition of x and y, using the identity:

(a-b) + (c-d) = (a+c) - (b+d)

sub

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

Subtraction of y from x, using the identity:

(a-b) - (c-d) = (a+d) - (b+c)

mul

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

Multiplication of x and y, using the identity:

(a-b) * (c-d) = (a*c + b*d) - (b*c + a*d)

neg

-\$x
\$x->neg

Additive inverse of x, using the identity:

-(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::Difference 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::Difference

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: