Changeset 22737


Ignore:
Timestamp:
05/03/18 10:00:45 (7 years ago)
Author:
erobo
Message:

CHG: corrected definition of norm inf

Location:
issm/trunk-jpl/src/c/toolkits/issm
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/toolkits/issm/IssmDenseMat.h

    r15104 r22737  
    140140                        switch(mode){
    141141                                case NORM_INF:
    142                                         norm=0;
     142                                        norm=0.;
    143143                                        for(i=0;i<this->M;i++){
    144144                                                absolute=0;
     
    151151                                        break;
    152152                                case NORM_FROB:
    153                                         norm=0;
     153                                        norm=0.;
    154154                                        for(i=0;i<this->M;i++){
    155155                                                for(j=0;j<this->N;j++){
    156                                                         norm+=pow(this->matrix[N*i+j],2);
     156                                                        norm+=this->matrix[N*i+j]*this->matrix[N*i+j];
    157157                                                }
    158158                                        }
  • issm/trunk-jpl/src/c/toolkits/issm/IssmMpiDenseMat.h

    r18063 r22737  
    311311                        switch(mode){
    312312                                case NORM_INF:
    313                                         local_norm=0;
     313                                        local_norm=0.;
    314314                                        for(i=0;i<this->m;i++){
    315315                                                absolute=0;
     
    324324                                        break;
    325325                                case NORM_FROB:
    326                                         local_norm=0;
     326                                        local_norm=0.;
    327327                                        for(i=0;i<this->m;i++){
    328328                                                for(j=0;j<this->N;j++){
    329                                                         local_norm+=pow(this->matrix[N*i+j],2);
     329                                                        local_norm+=this->matrix[N*i+j]*this->matrix[N*i+j];
    330330                                                }
    331331                                        }
  • issm/trunk-jpl/src/c/toolkits/issm/IssmMpiSparseMat.h

    r21615 r22737  
    2424#include "./SparseRow.h"
    2525#include <math.h>
    26 
    2726/*}}}*/
    2827
  • issm/trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h

    r22591 r22737  
    461461                        switch(mode){
    462462                                case NORM_INF:
    463                                         //local_norm=0; for(i=0;i<this->m;i++)local_norm=max(local_norm,fabs(this->vector[i]));
    464                                         local_norm=0; for(i=0;i<this->m;i++)local_norm=max(local_norm,this->vector[i]);
     463                                        local_norm=0.; for(i=0;i<this->m;i++)local_norm=max(local_norm,fabs(this->vector[i]));
     464                                        //local_norm=0; for(i=0;i<this->m;i++)local_norm=max(local_norm,this->vector[i]);
    465465                                        ISSM_MPI_Reduce(&local_norm, &norm, 1, ISSM_MPI_DOUBLE, ISSM_MPI_MAX, 0, IssmComm::GetComm());
    466466                                        ISSM_MPI_Bcast(&norm,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
     
    468468                                        break;
    469469                                case NORM_TWO:
    470                                         local_norm=0;
    471                                         for(i=0;i<this->m;i++)local_norm+=pow(this->vector[i],2);
     470                                        local_norm=0.;
     471                                        for(i=0;i<this->m;i++)local_norm+=this->vector[i]*this->vector[i];
    472472                                        ISSM_MPI_Reduce(&local_norm, &norm, 1, ISSM_MPI_DOUBLE, ISSM_MPI_SUM, 0, IssmComm::GetComm());
    473473                                        ISSM_MPI_Bcast(&norm,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
  • issm/trunk-jpl/src/c/toolkits/issm/IssmSeqVec.h

    r19977 r22737  
    226226                        switch(mode){
    227227                                case NORM_INF:
    228                                         //norm=0; for(i=0;i<this->M;i++)norm=max(norm,fabs(this->vector[i]));
    229                                         norm=0; for(i=0;i<this->M;i++)norm=max(norm,this->vector[i]);
     228                                        norm=0.; for(i=0;i<this->M;i++)norm=max(norm,fabs(this->vector[i]));
     229                                        //norm=0.; for(i=0;i<this->M;i++)norm=max(norm,this->vector[i]);
    230230                                        return norm;
    231231                                        break;
    232232                                case NORM_TWO:
    233                                         norm=0;
    234                                         for(i=0;i<this->M;i++)norm+=pow(this->vector[i],2);
     233                                        norm=0.;
     234                                        for(i=0;i<this->M;i++)norm+=this->vector[i]*this->vector[i];
    235235                                        return sqrt(norm);
    236236                                        break;
  • issm/trunk-jpl/src/c/toolkits/issm/SparseRow.h

    r16452 r22737  
    102102
    103103                        int i;
    104                         doubletype norm=0;
     104                        doubletype norm=0.;
    105105
    106106                        switch(mode){
     
    113113                                case NORM_FROB:
    114114                                        for(i=0;i<ncols;i++){
    115                                                 norm+=pow(values[i],2);
     115                                                norm+=values[i]*values[i];
    116116                                        }
    117117                                        return norm;
Note: See TracChangeset for help on using the changeset viewer.