Changeset 25543


Ignore:
Timestamp:
09/08/20 20:57:18 (5 years ago)
Author:
Mathieu Morlighem
Message:

CHG: pass IssmDouble by reference

Location:
issm/trunk-jpl/src/c/shared/io/Marshalling
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.cpp

    r25530 r25543  
    6464        printf("   double_count: %i\n",double_count);
    6565}/*}}}*/
    66 void CountDoublesFunctor::call(IssmDouble value){/*{{{*/
     66void CountDoublesFunctor::call(IssmDouble & value){/*{{{*/
    6767        this->double_count++;
    6868}/*}}}*/
    69 void CountDoublesFunctor::call(IssmDouble* value,int size){/*{{{*/
     69void CountDoublesFunctor::call(IssmDouble* & value,int size){/*{{{*/
    7070        if(value) this->double_count+= size;
    7171}/*}}}*/
     
    8181        printf("   double_count: %i\n",double_count);
    8282}/*}}}*/
    83 void RegisterInputFunctor::call(IssmDouble value){/*{{{*/
     83void RegisterInputFunctor::call(IssmDouble & value){/*{{{*/
    8484        _assert_(this->double_count<size_max);
    8585        this->tape_codi->registerInput(value);
     
    8787        this->double_count++;
    8888}/*}}}*/
    89 void RegisterInputFunctor::call(IssmDouble* value,int size){/*{{{*/
     89void RegisterInputFunctor::call(IssmDouble* & value,int size){/*{{{*/
    9090        if(value){
    9191                for(int i=0;i<size;i++){
     
    106106        printf("   double_count: %i\n",double_count);
    107107}/*}}}*/
    108 void RegisterOutputFunctor::call(IssmDouble value){/*{{{*/
     108void RegisterOutputFunctor::call(IssmDouble & value){/*{{{*/
    109109        this->tape_codi->registerOutput(value);
    110110        this->double_count++;
    111111}/*}}}*/
    112 void RegisterOutputFunctor::call(IssmDouble* value,int size){/*{{{*/
     112void RegisterOutputFunctor::call(IssmDouble* & value,int size){/*{{{*/
    113113        if(value){
    114114                for(int i=0;i<size;i++){
     
    129129        printf("   double_count: %i\n",double_count);
    130130}/*}}}*/
    131 void SetAdjointFunctor::call(IssmDouble value){/*{{{*/
     131void SetAdjointFunctor::call(IssmDouble & value){/*{{{*/
    132132        _assert_(this->double_count<size_max);
    133133        value.gradient() = this->adjoint[this->double_count];
    134134        this->double_count++;
    135135}/*}}}*/
    136 void SetAdjointFunctor::call(IssmDouble* value,int size){/*{{{*/
     136void SetAdjointFunctor::call(IssmDouble* & value,int size){/*{{{*/
    137137        if(value){
    138138                for(int i=0;i<size;i++){
  • issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h

    r25530 r25543  
    119119                template<typename T> void call(T & value){/*General case: do nothing*/}
    120120                template<typename T> void call(T* & value,int size){/*General case: do nothing*/}
    121                 void call(IssmDouble value);
    122                 void call(IssmDouble* value,int size);
     121                void call(IssmDouble & value);
     122                void call(IssmDouble* & value,int size);
    123123}; /*}}}*/
    124124class RegisterInputFunctor:   public MarshallHandle{ /*{{{*/
     
    135135                template<typename T> void call(T & value){/*General case: do nothing*/}
    136136                template<typename T> void call(T* & value,int size){/*General case: do nothing*/}
    137                 void call(IssmDouble value);
    138                 void call(IssmDouble* value,int size);
     137                void call(IssmDouble & value);
     138                void call(IssmDouble* & value,int size);
    139139}; /*}}}*/
    140140class RegisterOutputFunctor:  public MarshallHandle{ /*{{{*/
     
    149149                template<typename T> void call(T & value){/*General case: do nothing*/}
    150150                template<typename T> void call(T* & value,int size){/*General case: do nothing*/}
    151                 void call(IssmDouble value);
    152                 void call(IssmDouble* value,int size);
     151                void call(IssmDouble & value);
     152                void call(IssmDouble* & value,int size);
    153153}; /*}}}*/
    154154class SetAdjointFunctor:      public MarshallHandle{ /*{{{*/
     
    165165                template<typename T> void call(T & value){/*General case: do nothing*/}
    166166                template<typename T> void call(T* & value,int size){/*General case: do nothing*/}
    167                 void call(IssmDouble value);
    168                 void call(IssmDouble* value,int size);
     167                void call(IssmDouble & value);
     168                void call(IssmDouble* & value,int size);
    169169}; /*}}}*/
    170170#endif
Note: See TracChangeset for help on using the changeset viewer.