---
name: "TAU_MAPPING_OBJECT"
section: "3"
platform: "linux"
package: "tau"
version: "2.17.3.1.dfsg-4.2"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/TAU_MAPPING_OBJECT"
---

# TAU\_MAPPING\_OBJECT(3)

Declares a mapping object

## NAME

TAU\_MAPPING\_OBJECT - Declares a mapping object

## SYNOPSIS

**C/C++:**

**TAU\_MAPPING\_OBJECT(FunctionInfo** *FuncIdVar***);**

## DESCRIPTION

To create storage for an identifier associated with a higher level statement that is mapped using TAU\_MAPPING, we use the TAU\_MAPPING\_OBJECT macro. For example, in the TAU\_MAPPING example, the array expressions are created into objects of a class ExpressionKernel, and each statement is an object that is an instance of this class. To embed the identity of the statement we store the mapping object in a data field in this class. This is shown below:

## EXAMPLE

**C/C++ :**

```
template<class LHS,class Op,class RHS,class EvalTag>
class ExpressionKernel : public Pooma::Iterate_t {
  public:
    typedef ExpressionKernel<LHS,Op,RHS,EvalTag> This_t;
    //
    // Construct from an Expr.
    // Build the kernel that will evaluate the expression on the
    // given domain.
    // Acquire locks on the data referred to by the expression.
    //
    ExpressionKernel(const LHS&,const Op&,const RHS&,
    Pooma::Scheduler_t&);
    virtual ~ExpressionKernel();
    // Do the loop.
    virtual void run();
  private:
    // The expression we will evaluate.
    LHS lhs_m;
    Op  op_m;
    RHS rhs_m;
    TAU_MAPPING_OBJECT(TauMapFI)
};
```

## SEE ALSO

[TAU\_MAPPING\_CREATE(3)](/TAU_MAPPING_CREATE/3.md), [TAU\_MAPPING\_LINK(3)](/TAU_MAPPING_LINK/3.md), [TAU\_MAPPING\_PROFILE(3)](/TAU_MAPPING_PROFILE/3.md)
