++ed by:
AERO PLICEASE VEESH ZMUGHAL
3 non-PAUSE users
Author image David Mertens
and 1 contributors

NAME

C::Blocks::Types - type classes for basic C data types for C::Blocks

VERSION

This documentation is for v0.40_1

SYNOPSIS

 use C::Blocks;
 use C::Blocks::Types qw(double double_array Int);
 
 # Generate some synthetic data;
 my @data = map { rand() } 1 .. 10;
 print "data are @data\n";

 # Pack this data into a C array
 my double_array $points = pack 'd*', @data;
 
 # Calculate the rms (root mean square)
 my double $rms = 0;
 cblock {
     for (int i = 0; i < length_$points; i++) {
         $rms += $points[i]*$points[i];
     }
     $rms = sqrt($rms / length_$points);
 }
 
 print "data rms is $rms\n";
 
 # Note that Int is capitalized, unlike the other type names
 my Int $foo = 4;
 cblock {
     printf("$foo is %d\n", $foo);
 }

DESCRIPTION

C::Blocks lets you intersperse blocks of C code directly among your Perl code. To help facilitate the interchange of C and Perl data, you can indicate that your Perl variable has an associated type package. This is discussed in "TYPES" in C::Blocks. The purpose of this package is to provide type packages, and short names, for basic C data types like double and short, as well as rudimentary packed arrays.

... must document provided types as well as "length_" variables.