Algorithm-CP-IZ
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
# files to replace their "fallback" counterparts before distributing your
# changes.
my @names = (
qw(
CS_ERR_NONE
CS_ERR_GETVALUE
CS_ERR_OVERFLOW
CS_ERR_NO_MEMORY
CS_VALUE_SELECTOR_MIN_TO_MAX
CS_VALUE_SELECTOR_MAX_TO_MIN
CS_VALUE_SELECTOR_LOWER_AND_UPPER
CS_VALUE_SELECTOR_UPPER_AND_LOWER
CS_VALUE_SELECTOR_MEDIAN_AND_REST
CS_VALUE_SELECTION_EQ
CS_VALUE_SELECTION_NEQ
CS_VALUE_SELECTION_LE
CS_VALUE_SELECTION_LT
CS_VALUE_SELECTION_GE
CS_VALUE_SELECTION_GT
IZ_VERSION_MAJOR
IZ_VERSION_MINOR
IZ_VERSION_PATCH
));
ExtUtils::Constant::WriteConstants(
NAME => 'Algorithm::CP::IZ',
NAMES => \@names,
DEFAULT_TYPE => 'IV',
C_FILE => 'const-c.inc',
XS_FILE => 'const-xs.inc',
);
}
else {
use File::Copy;
use File::Spec;
foreach my $file ('const-c.inc', 'const-xs.inc') {
my $fallback = File::Spec->catfile('fallback', $file);
copy ($fallback, $file) or die "Can't copy $fallback to $file: $!";
}
}
# VAdd
unless (-f "cs_vadd.inc") {
open (my $fh, ">", "cs_vadd.inc") or die "cs_vadd.inc: cannot create: $!";
for my $i (3..10) {
print $fh "void*\n";
print $fh "cs_VAdd$i(";
print $fh join(", ", map { "vint$_" } (1..$i));
print $fh ")\n";
print $fh map { " void* vint$_\n" } (1..$i);
print $fh "CODE:\n";
print $fh " RETVAL = cs_VAdd($i, ";
print $fh join(", ", map { "vint$_" } (1..$i));
print $fh ");\n";
print $fh "OUTPUT:\n";
print $fh " RETVAL\n\n";
}
close($fh);
}
# VMul
unless (-f "cs_vmul.inc") {
open (my $fh, ">", "cs_vmul.inc") or die "cs_vmul.inc: cannot create: $!";
for my $i (3..10) {
print $fh "void*\n";
print $fh "cs_VMul$i(";
print $fh join(", ", map { "vint$_" } (1..$i));
print $fh ")\n";
print $fh map { " void* vint$_\n" } (1..$i);
print $fh "CODE:\n";
print $fh " RETVAL = cs_VMul($i, ";
print $fh join(", ", map { "vint$_" } (1..$i));
print $fh ");\n";
print $fh "OUTPUT:\n";
print $fh " RETVAL\n\n";
}
close($fh);
}
# VSub
unless (-f "cs_vsub.inc") {
open (my $fh, ">", "cs_vsub.inc") or die "cs_vsub.inc: cannot create: $!";
for my $i (3..10) {
print $fh "void*\n";
print $fh "cs_VSub$i(";
print $fh join(", ", map { "vint$_" } (1..$i));
print $fh ")\n";
print $fh map { " void* vint$_\n" } (1..$i);
print $fh "CODE:\n";
print $fh " RETVAL = cs_VSub($i, ";
print $fh join(", ", map { "vint$_" } (1..$i));
print $fh ");\n";
print $fh "OUTPUT:\n";
print $fh " RETVAL\n\n";
}
close($fh);
}
# Reif*
unless (-f "cs_reif2.inc") {
open (my $fh, ">", "cs_reif2.inc") or die "cs_reif2.inc: cannot create: $!";
my @names = qw(Eq Neq Lt Le Gt Ge);
for my $name (@names) {
print $fh "void*\n";
print $fh "cs_Reif$name(vint1, vint2)\n";
print $fh " void* vint1\n";
print $fh " void* vint2\n";
print $fh "CODE:\n";
print $fh " RETVAL = cs_Reif$name(vint1, vint2);\n";
print $fh "OUTPUT:\n";
print $fh " RETVAL\n\n";
}
my @names2 = map { uc $_ } @names;
for my $name (@names2) {
print $fh "void*\n";
print $fh "cs_Reif$name(vint, val)\n";
print $fh " void* vint\n";
print $fh " int val\n";
print $fh "CODE:\n";
print $fh " RETVAL = cs_Reif$name(vint, val);\n";
print $fh "OUTPUT:\n";
print $fh " RETVAL\n\n";
}
close($fh);
}
( run in 1.002 second using v1.01-cache-2.11-cpan-39bf76dae61 )