12#ifndef ARCANE_VARIABLEREFSCALAR_H
13#define ARCANE_VARIABLEREFSCALAR_H
17#include "arcane/VariableRef.h"
18#include "arcane/Parallel.h"
19#include "arcane/MathUtils.h"
27class VariableFactoryRegisterer;
40template<
typename DataType>
77 virtual bool isArrayVariable()
const {
return false; }
84 ConstArrayView<DataType> asArray()
const {
return ConstArrayView<DataType>(1,&(m_private_part->value())); }
88 void operator=(
const DataType& v) {
assign(v); }
89 VariableRefScalarT<DataType>& operator=(
const VariableRefScalarT<DataType>& v)
99 const DataType&
operator()()
const {
return m_private_part->value(); }
102 const DataType&
value()
const {
return m_private_part->value(); }
115 {
return math::isZero(m_private_part->value()); }
130 {
return math::isNearlyZero(m_private_part->value()); }
133 ARCANE_CORE_EXPORT
void assign(
const DataType& v);
144 PrivatePartType* m_private_part;
Paramètres nécessaires à la construction d'une variable.
Infos caractérisant une variable.
Référence à une variable scalaire.
void refersTo(const VariableRefScalarT< DataType > &rhs)
Positionne la référence de l'instance à la variable rhs.
const DataType & value() const
Valeur du scalaire.
void swapValues(VariableRefScalarT< DataType > &rhs)
Échange les valeurs de la variable rhs avec celles de l'instance.
virtual Integer arraySize() const
Si la variable est un tableau, retourne sa dimension, sinon retourne 0.
bool isNearlyZero() const
Compare la variable avec la valeur 0.
const DataType & operator()() const
Valeur du scalaire.
void reset()
Réinitialise la variable avec sa valeur par défaut.
VariableRefScalarT()
Constructeur vide.
bool isEqual(const DataType &v) const
Compare la variable avec la valeur v.
bool isNearlyEqual(const DataType &v) const
Compare la variable avec la valeur v.
void reduce(Parallel::eReduceType type)
Effectue une réduction de type type sur la variable.
VariableRef BaseClass
Type de la classe de base.
bool isZero() const
Compare la variable avec la valeur 0.
void assign(const DataType &v)
Affecte à la variable la valeur v.
virtual void updateFromInternal()
Mise à jour à partir de la partie interne.
DataType ElementType
Type des éléments de la variable.
Référence à une variable.
Informations caractérisant le type d'une variable.
Vue modifiable d'un tableau d'un type T.
constexpr __host__ __device__ bool isNearlyEqual(const _Type &a, const _Type &b)
Teste si deux valeurs sont à un peu près égales. Pour les types entiers, cette fonction est équivalen...
constexpr __host__ __device__ bool isEqual(const _Type &a, const _Type &b)
Teste l'égalité bit à bit entre deux valeurs.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eReduceType
Types des réductions supportées.