NAME

Acme::ExtUtils::XSOne::Test::Calculator::Basic - Basic arithmetic operations

SYNOPSIS

# Import specific functions
use Acme::ExtUtils::XSOne::Test::Calculator::Basic qw(add subtract multiply);

my $sum  = add(2, 3);       # 5
my $diff = subtract(10, 4); # 6
my $prod = multiply(3, 4);  # 12

# Or use fully qualified names
use Acme::ExtUtils::XSOne::Test::Calculator;

my $quot = Acme::ExtUtils::XSOne::Test::Calculator::Basic::divide(15, 3);   # 5
my $mod  = Acme::ExtUtils::XSOne::Test::Calculator::Basic::modulo(17, 5);   # 2

EXPORTABLE FUNCTIONS

All functions can be imported by name:

add subtract multiply divide modulo negate absolute safe_divide clamp percent

DESCRIPTION

This module provides basic arithmetic operations as part of the Acme::ExtUtils::XSOne::Test::Calculator distribution. All operations record their results in the shared calculation history.

FUNCTIONS

add

my $result = add($a, $b);

Returns the sum of $a and $b.

subtract

my $result = subtract($a, $b);

Returns $a minus $b.

multiply

my $result = multiply($a, $b);

Returns the product of $a and $b.

divide

my $result = divide($a, $b);

Returns $a divided by $b. Croaks if $b is zero.

modulo

my $result = modulo($a, $b);

Returns the floating-point remainder of $a divided by $b. Croaks if $b is zero.

negate

my $result = negate($a);

Returns the negation of $a (i.e., -$a).

absolute

my $result = absolute($a);

Returns the absolute value of $a.

safe_divide

my $result = safe_divide($a, $b);

Returns $a divided by $b, or 0 if $b is zero (instead of croaking).

clamp

my $result = clamp($value, $min, $max);

Returns $value constrained to the range [$min, $max].

percent

my $result = percent($value, $pct);

Returns $pct percent of $value (i.e., $value * $pct / 100).

SEE ALSO

Acme::ExtUtils::XSOne::Test::Calculator, Acme::ExtUtils::XSOne::Test::Calculator::Scientific, Acme::ExtUtils::XSOne::Test::Calculator::Trig, Acme::ExtUtils::XSOne::Test::Calculator::Memory