Dear Ed & others,

Many thanks for your reply! A inline module sounds (much) better, but looking 
through the documentation it seems a bit beyond my current skill level.
If you/someone else on the list would be available to implement this as a small 
project, please let me know! I have some funding available.

But for now, I'll use inline:CPP directly - and to clarify my previous 
explanation, the "dlib/matrix" is indeed an external library that will not be 
found automatically..
So, I've looked at the Inline C documentation, and probably need something like 
this in Inline Cpp format:
use Inline C => config => libs => '-L/your/path -lyourlib';

I also need to provide the following commands to the GCC compiler:
'-std=c++11 -O3 -fopenmp'
but haven't found any documentation on this yet..

And I need to make sure that inlines writes to a location where it has 
read/write permission:
use Inline (Config => DIRECTORY => '/usr/local/apache/Inline', );
because I my survey system uses CGI (wasn't aware of this before, but I noticed 
this in the Inline C documentation)

Could you/someone else show me how to implement this (correctly) in the Perl 
script below)?

Many thanks,
Marcel

[% Begin Unverified Perl

use Inline 'CPP';

# Script for tasks 2-21
my $task = 9;
my $prevTask = $task-1;

# A. Add the previous choice task to “observedVector”
my @observedVector = GETVALUE("observedVector");
push @observedVector, VALUE("task".$prevTask);
SETVALUE("observedVector",join("",@observedVector));

# B. Remove the previous choice task from “futureVector”
my @futureVector = GETVALUE("futureVector");
splice @futureVector, 0, 10;

# C. CALL C++ FUNCTION:
# something (approximately) like this:
@futureVector = CppAdaptive(@pastVector,@futureVector,$prevTask);

# D. Save futureVector and set next choice task
SETVALUE("futureVector",join("",@futureVector));
SETVALUE("task".$task, substr(@futurevector,1,10));

__END__
__CPP__


use Inline (Config => DIRECTORY => '/usr/local/apache/Inline', );
use Inline Cpp => config => libs => '-L/your/path -lyourlib';

# pass  '-std=c++11 -O3 -fopenmp' to the compiler

#include <string>
#include "dlib/matrix.h"
using namespace std;
using namespace dlib;

string CppAdaptive(const string &observedVector,
                   const string &futureVector,
                   const int prevTask) {

    // test dlib matrix module integration
    matrix <int> design(12, 6);
    design = 1, 3, 3, 3, 1, 1,
             1, 3, 1, 3, 1, 3,
             1, 1, 2, 2, 2, 1,
             2, 2, 1, 1, 3, 2,
             2, 3, 2, 1, 1, 3,
             3, 3, 1, 1, 2, 3,
             2, 1, 3, 3, 2, 2,
             3, 1, 3, 2, 2, 2,
             3, 2, 1, 2, 3, 3,
             3, 2, 2, 1, 3, 1,
             1, 2, 3, 2, 1, 2,
             2, 1, 2, 3, 3, 2;

    // return futureVector
    return futureVector;
}


End Unverified %]

Reply via email to