Actual source code: dlregis.c

  1: /*$Id: dlregis.c 1.13 04/03/01 16:51:48-06:00 sarich@lully.mcs.anl.gov $*/

  3: #include "tao_solver.h"

  8: /*
  9:   DLLibraryRegister - This function is called when the dynamic library it is in is opened.

 11:   This registers all of the TAO methods that are in the basic libtao library.

 13:   Input Parameter:
 14:   path - library path
 15:  */
 16: int DLLibraryRegister(const char *path)
 17: {
 18:   int info;
 19:   TaoFunctionBegin;

 21: #ifdef TAO_USE_PETSC
 22:   info = PetscInitializeNoArguments(); if (info) return 1;
 23: #endif

 25:   /*
 26:       If we got here then PETSc was properly loaded
 27:   */
 28:   info = TaoRegisterAll(path);CHKERRQ(info);
 29:   TaoFunctionReturn(0);
 30: }

 33: /* --------------------------------------------------------------------------*/
 34: static const char *contents = "TAO unconstrained minimization library. \n\
 35:      limited memory variable metric method\n\
 36:      line search Newton method\n\
 37:      trust region Newton method\n";

 39: static const char *authors = TAO_AUTHOR_INFO;
 40: static const char *version = TAO_VERSION_NUMBER;

 42: /* --------------------------------------------------------------------------*/
 46: int DLLibraryInfo(const char *path,const char *type,const char **mess)
 47: {
 48:   int        info;
 49:   TaoTruth iscon,isaut,isver;

 51:   TaoFunctionBegin;

 53:   info = TaoStrcmp(type,"Contents",&iscon);CHKERRQ(info);
 54:   info = TaoStrcmp(type,"Authors",&isaut);CHKERRQ(info);
 55:   info = TaoStrcmp(type,"Version",&isver);CHKERRQ(info);
 56:   if (iscon)      *mess = contents;
 57:   else if (isaut) *mess = authors;
 58:   else if (isver) *mess = version;
 59:   else            *mess = 0;
 60:   TaoFunctionReturn(0);
 61: }