# Can dense container elements be reference parameters?

I'm trying to code up a GCD algorithm. Given two dense containers, num and sum, I want to reduce corresponding elements to lowest terms (as if they were a ratio). One version of my GCD code that works is...

# problem with bitwise_cast

Hello!

I try use bitwise_cast, but I get error: no instance of overloaded function "bitwise_cast" matches the argument list.

dense N(2);
dense N_11(2);
N_11 = arbb::bitwise_cast(N);

What's wrong?

Thank you.

# PDE Stencil and efficiency of the treament of boundary conditions.

Hi

Solving PDE, the stencil possibility in arbb is useful. My question is about the vectorization/parallelization of the boundary conditions where the stencil doesn't apply.

For example i use the stencil in that way :

// first the stencil

// ********************

# ARBB and classes

Hi In order to parallelize function in class member i'd like to use this kind of structure : class toto { public : toto() {}; void valuate(arbb::f64 & ret) { ret =0. ; }; void values( arbb::dense & ret ) { arbb::map(toto::valuate)(ret); } void paral_call( arbb::dense & ret) { arbb::call(toto::values)(ret); } } Why is it impossible. Of course no problem if used outside class. Is there a workaround to achieve the parallelization Thank you

# Manipulating row, columns of dense<f32,2>

Hi I am using dense vector and i try to fill row or columns without _for nest in order to get parallelization: For exemple is it possible to fill a row or column with a given value : dense a; a(0, all) = val ; // all for all elements of row 0 If yes is it possible for a section : a(0,[1:3])= val ; // This possibility is available in all C++ libraries i use (eigen, blitz++). Thank you very much

# Excessively long error messages

I recently started utilize ArBB in a computer vision project. The performance improvement is amazing. However, there is an annoying issue that I would like to see a way to address. When doing arbb::call or arbb::map, if there is a minor error in the argument, it would produce error messages of a mile length (I am using gcc 4.6.0), such as
gauss.cpp:198:4: error: no matching function for call to call() gauss.cpp:198:4: note: candidates are: /opt/intel/arbb/1.0.0.022/include/arbb/cpp/detail/call_template.hpp:41:25: note: arbb_2::closure arbb_2::call(void (*)())

# Big kernel with internal error

Hi I developped a kernel with ARBB for solving Partial Differentiel Equation in 2D with stencil. Everything is fine with the emulator (ARBB_EMULATE=1)though being very slow comparing with a pure C++ version. Without the emulator, even withARBB_OPT_LEVL=O0, the code runs a long time ending with a Low level optimization (LLO) got the exceptions: ILLEGAL_MEM_OP: Access the illegal memory address => Accessing not mapped address [0x50] at IP[0x7fd6736ffad5]. Failed! terminate called after throwing an instance of 'arbb_2::internal_error'

# Invalid scope 'function' to arbb_end_loop: invalid control pairs

Hi I still have another example where i get an error due to the boolean data in the code below : // pay off class to valuate option
class PayOffSimple2 { public : arbb::f64 strike ; arbb::boolean bVendeur; PayOffSimple2() : strike(0.),bVendeur(true){} PayOffSimple2( arbb::f64 strike_, arbb::boolean bVendeur_):strike(strike_),bVendeur(bVendeur_){} arbb::f64 operator()( const arbb::f64 & x) const { _if (bVendeur) { return arbb::max(arbb::exp(x)-strike,0.); } _end_if; return -arbb::max(arbb::exp(x)-strike,0.); } }; // arbb wrapper

# another issue on what(): zero types captured

Hi On simple another example i still get a "what(): zero types captured" although an arrb data is a member. // using bool so that the capture will recall the function behavior
class PayOffSimple1 { private : arbb::f64 strike ; bool bVendeur; public : PayOffSimple1() : strike(0.),bVendeur(true){} PayOffSimple1( arbb::f64 strike_, bool bVendeur_):strike(strike_),bVendeur(bVendeur_){} arbb::f64 operator()( const arbb::f64 & x) const { if (bVendeur) { return arbb::max(arbb::exp(x)-strike,0.); } return -arbb::max(arbb::exp(x)-strike,0.); } };

# Passing class to arbb code

Hi Trying to have large arbb function, i face a problem with executing function captured by arbb. Here is the small exemple i took : // a small class
class PayOffSoSimple { public : PayOffSoSimple() {} PayOffSoSimple( const PayOffSoSimple & pay) {} arbb::f64 operator()() const { return 1.; } }; // a first caller with payoff function instanciated inside the caller void caller_( const arbb::usize & N) { PayOffSoSimple pay; arbb::dense Sol(N); _for (arbb::usize i= 0 , i < N , ++i) { Sol[i] = pay(); } _end_for; }