/[escript]/trunk/paso/src/SCSL_direct.c
ViewVC logotype

Diff of /trunk/paso/src/SCSL_direct.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 425 by gross, Tue Jan 10 04:10:39 2006 UTC revision 584 by gross, Thu Mar 9 23:03:38 2006 UTC
# Line 44  void Paso_SCSL_direct_free(Paso_SystemMa Line 44  void Paso_SCSL_direct_free(Paso_SystemMa
44  void Paso_SCSL_direct(Paso_SystemMatrix* A,  void Paso_SCSL_direct(Paso_SystemMatrix* A,
45                                 double* out,                                 double* out,
46                                 double* in,                                 double* in,
47                                 Paso_Options* options) {                                 Paso_Options* options,
48                                   Paso_Performance* pp) {
49  #ifdef SCSL  #ifdef SCSL
50    double time0;    double time0;
51    int token,l=sizeof(TokenList)/sizeof(int),reordering_method,method;    int token,l=sizeof(TokenList)/sizeof(int),reordering_method,method;
# Line 67  void Paso_SCSL_direct(Paso_SystemMatrix* Line 68  void Paso_SCSL_direct(Paso_SystemMatrix*
68            Paso_setError(TYPE_ERROR,"Paso_SCSL_direct: direct solver can only be applied to CSC format with block size 1 and index offset 0.");            Paso_setError(TYPE_ERROR,"Paso_SCSL_direct: direct solver can only be applied to CSC format with block size 1 and index offset 0.");
69    }    }
70    method=Paso_Options_getSolver(options->method,PASO_PASO,options->symmetric);    method=Paso_Options_getSolver(options->method,PASO_PASO,options->symmetric);
71      Performance_startMonitor(pp,PERFORMANCE_ALL);
72    if (Paso_noError()) {    if (Paso_noError()) {
73    
74       /* if no token has been assigned a free token must be found*/       /* if no token has been assigned a free token must be found*/
# Line 107  void Paso_SCSL_direct(Paso_SystemMatrix* Line 109  void Paso_SCSL_direct(Paso_SystemMatrix*
109      }      }
110    }    }
111    time0=Paso_timer();    time0=Paso_timer();
   
112    if (Paso_noError())  {    if (Paso_noError())  {
113       token=*(int*)(A->solver);       token=*(int*)(A->solver);
114       if (TokenSym[token]) {       if (TokenSym[token]) {
# Line 117  void Paso_SCSL_direct(Paso_SystemMatrix* Line 118  void Paso_SCSL_direct(Paso_SystemMatrix*
118       }       }
119       if (options->verbose) printf("timing SCSL: solve: %.4e sec (token = %d)\n",Paso_timer()-time0,token);       if (options->verbose) printf("timing SCSL: solve: %.4e sec (token = %d)\n",Paso_timer()-time0,token);
120     }     }
121       Performance_stopMonitor(pp,PERFORMANCE_ALL);
122  #else  #else
123      Paso_setError(SYSTEM_ERROR,"Paso_SCSL_direct:SCSL is not avialble.");      Paso_setError(SYSTEM_ERROR,"Paso_SCSL_direct:SCSL is not avialble.");
124  #endif  #endif

Legend:
Removed from v.425  
changed lines
  Added in v.584

  ViewVC Help
Powered by ViewVC 1.1.26