Loading [MathJax]/extensions/tex2jax.js
ROOT
6.06/09
Reference Guide
ROOT Home Page
Main Page
Related Pages
User's Classes
Namespaces
All Classes
Files
Release Notes
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
math
vc
include
Vc
common
operand.h
Go to the documentation of this file.
1
/* This file is part of the Vc library. {{{
2
3
Copyright (C) 2013 Matthias Kretz <kretz@kde.org>
4
5
Vc is free software: you can redistribute it and/or modify
6
it under the terms of the GNU Lesser General Public License as
7
published by the Free Software Foundation, either version 3 of
8
the License, or (at your option) any later version.
9
10
Vc is distributed in the hope that it will be useful, but
11
WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
GNU Lesser General Public License for more details.
14
15
You should have received a copy of the GNU Lesser General Public
16
License along with Vc. If not, see <http://www.gnu.org/licenses/>.
17
18
}}}*/
19
20
#ifndef VC_COMMON_OPERAND_H
21
#define VC_COMMON_OPERAND_H
22
23
namespace
ROOT
{
24
namespace
Vc
25
{
26
template
<
typename
Parent>
class
Operand
27
{
28
public
:
29
Parent *
parent
() {
return
static_cast<
Parent *
>
(
this
); }
30
const
Parent *
parent
()
const
{
return
static_cast<
const
Parent *
>
(
this
); }
31
32
private
:
33
};
34
35
enum
BinaryOperation
{
36
AddOp
,
37
SubOp
,
38
MulOp
,
39
DivOp
40
};
41
42
template
<
typename
Result,
typename
Left,
typename
Right>
class
BinaryOperation
:
public
Operand
<BinaryOperation<Result, Left, Right> >
43
{
44
Left
m_left
;
45
Right
m_right
;
46
public
:
47
#if VC_CXX11
48
Vc_ALWAYS_INLINE
BinaryOperation
(Left &&
l
, Right &&
r
)
49
#endif
50
operator
Result()
51
};
52
53
}
// namespace Vc
54
}
// namespace ROOT
55
56
#endif // VC_COMMON_OPERAND_H
ROOT::Vc::Operand::parent
const Parent * parent() const
Definition:
operand.h:30
ROOT
Namespace for new ROOT classes and functions.
Definition:
ROOT.py:1
ROOT::Vc::AddOp
Definition:
operand.h:36
ROOT::Vc::BinaryOperation
BinaryOperation
Definition:
operand.h:35
ROOT::Vc::Operand::parent
Parent * parent()
Definition:
operand.h:29
ROOT::Vc::DivOp
Definition:
operand.h:39
ROOT::Vc::BinaryOperation::m_right
Right m_right
Definition:
operand.h:45
ROOT::Vc::BinaryOperation::m_left
Left m_left
Definition:
operand.h:44
ROOT::Vc::SubOp
Definition:
operand.h:37
r
ROOT::R::TRInterface & r
Definition:
Object.C:4
l
TLine * l
Definition:
textangle.C:4
ROOT::Vc::MulOp
Definition:
operand.h:38
Vc_ALWAYS_INLINE
#define Vc_ALWAYS_INLINE
Definition:
macros.h:130
ROOT::Vc::Operand
Definition:
operand.h:26
ROOT::Vc
Definition:
casts.h:28
ROOT::Vc::BinaryOperation
Definition:
operand.h:42