Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
NumArrayUtils.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* NumArrayUtils.cc (C) 2000-2022 */
9/* */
10/* Fonctions utilitaires pour NumArray. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/NumArrayUtils.h"
15#include "arcane/utils/NumArray.h"
16#include "arcane/utils/IOException.h"
17
18#include "arcane/utils/internal/ValueConvertInternal.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22/*!
23 * \namespace Arcane::NumArrayUtils
24 *
25 * \brief Fonctions utilitaires pour NumArray.
26 */
28{
29
30namespace
31{
32template<typename DataType> void
33_readFromText(NumArray<DataType, MDDim1>& num_array, std::istream& input)
34{
36 if (builtInGetArrayValueFromStream(v,input))
37 ARCANE_THROW(IOException,"Error filling NumArray with text file");
38 MDSpan<DataType,MDDim1> data(v.data(),v.size());
39 num_array.resize(v.size());
40 num_array.copy(data);
41}
42
43}
44
45/*---------------------------------------------------------------------------*/
46/*---------------------------------------------------------------------------*/
47
48//! Remplit \a v avec les valeurs de input.
49extern "C++" ARCANE_UTILS_EXPORT void
50readFromText(NumArray<double, MDDim1>& v, std::istream& input)
51{
52 _readFromText(v,input);
53}
54
55//! Remplit \a v avec les valeurs de input.
56extern "C++" ARCANE_UTILS_EXPORT void
57readFromText(NumArray<Int32, MDDim1>& v, std::istream& input)
58{
59 _readFromText(v,input);
60}
61
62//! Remplit \a v avec les valeurs de input.
63extern "C++" ARCANE_UTILS_EXPORT void
64readFromText(NumArray<Int64, MDDim1>& v, std::istream& input)
65{
66 _readFromText(v,input);
67}
68
69/*---------------------------------------------------------------------------*/
70/*---------------------------------------------------------------------------*/
71
72} // namespace Arcane::NumArrayUtils
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
#define ARCANE_THROW(exception_class,...)
Macro pour envoyer une exception avec formattage.
Exception lorsqu'une erreur d'entrée/sortie est détectée.
Definition IOException.h:32
Classe de base des vues multi-dimensionnelles.
Definition MDSpan.h:44
Tableaux multi-dimensionnels pour les types numériques accessibles sur accélérateurs.
void copy(ConstMDSpanType rhs)
Copie dans l'instance les valeurs de rhs.
void resize(Int32 dim1_size, Int32 dim2_size, Int32 dim3_size, Int32 dim4_size)
Modifie la taille du tableau.
Integer size() const
Nombre d'éléments du vecteur.
const T * data() const
Accès à la racine du tableau hors toute protection.
Vecteur 1D de données avec sémantique par valeur (style STL).
Fonctions utilitaires pour NumArray.
void readFromText(NumArray< double, MDDim1 > &v, std::istream &input)
Remplit v avec les valeurs de input.