#!/usr/bin/perl use Data::Dumper; use rperlgsl; # give us Math::GSL::Matrix # does not seem to be necessary to trigger -D__CPP__TYPES #use rperltypes; #rperltypes::types_enable('CPP'); use RPerl::DataStructure::GSLMatrix qw(gsl_matrix__typetest0 gsl_matrix__typetest1 gsl_matrix__typetest99); use RPerl::DataStructure::GSLMatrix_cpp; #RPerl::DataStructure::GSLMatrix_cpp::cpp_load(); print "#=" x 30, "\n"; print "#=" x 30, "\n"; print "\n\n"; print 'have main::RPerl__DataStructure__GSLMatrix__MODE_ID() = ', main::RPerl__DataStructure__GSLMatrix__MODE_ID(), "\n"; print 'have main::gsl_matrix__typetest99() = ', main::gsl_matrix__typetest99(), "\n"; my gsl_matrix $m_typetest0 = gsl_matrix__typetest0(); print 'have $m_typetest0 = ', Dumper($m_typetest0); print 'have gsl_matrix_get($m_typetest0, 0, 0) = ', gsl_matrix_get($m_typetest0, 0, 0), "\n"; print "\n\n"; my gsl_matrix $m_typetest1a = gsl_matrix_alloc(2, 2); gsl_matrix_set($m_typetest1a, 0, 0, 10); gsl_matrix_set($m_typetest1a, 0, 1, 15); gsl_matrix_set($m_typetest1a, 1, 0, 20); gsl_matrix_set($m_typetest1a, 1, 1, 25); print 'have pre-call gsl_matrix_get($m_typetest1a, 0, 0) = ', gsl_matrix_get($m_typetest1a, 0, 0), "\n"; print 'have pre-call gsl_matrix_to_string($m_typetest1a) = ', "\n", gsl_matrix_to_string($m_typetest1a), "\n"; $m_typetest1a = gsl_matrix__typetest1($m_typetest1a); print 'have post-call gsl_matrix_get($m_typetest1a, 0, 0) = ', gsl_matrix_get($m_typetest1a, 0, 0), "\n"; print 'have post-call gsl_matrix_to_string($m_typetest1a) = ', "\n", gsl_matrix_to_string($m_typetest1a), "\n"; print "\n\n"; my gsl_matrix $m_typetest1b = number_arrayref_to_gsl_matrix([20, 40, 60, 80], 2, 2); print 'have pre-call gsl_matrix_to_string($m_typetest1b) = ', "\n", gsl_matrix_to_string($m_typetest1b), "\n"; $m_typetest1b = gsl_matrix__typetest1($m_typetest1b); print 'have post-call gsl_matrix_to_string($m_typetest1b) = ', "\n", gsl_matrix_to_string($m_typetest1b), "\n"; print "\n\n"; print "#=" x 30, "\n"; print "#=" x 30, "\n"; __END__ my @namespaces = qw( main RPerl::DataStructure::GSLMatrix RPerl::DataStructure::GSLMatrix_cpp RPerl::Operation::Expression::Operator::GSLFunctions; RPerl::Operation::Expression::Operator::GSLFunctions_cpp; ); foreach my $namespace (@namespaces) { print 'BEGIN NAMESPACE: ', $namespace, "\n\n"; foreach my $entry ( sort keys %{$namespace . '::'} ) { print $namespace, '::', $entry, "\n"; print "\tscalar is defined\n" if defined ${$entry}; print "\tarray is defined\n" if @{$entry}; print "\thash is defined\n" if keys %{$entry}; print "\tsub is defined\n" if defined &{$entry}; print "-" x 30, "\n"; } print 'END NAMESPACE: ', $namespace, "\n\n"; print "=" x 30, "\n"; }