SALSA Analysis Modules
Defines | Functions
anamodsalsamodules.h File Reference

Prototypes for using the standard modules. More...

#include "petsc.h"
Include dependency graph for anamodsalsamodules.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define DIAGONAL_POSITIVE   2
#define DIAGONAL_NONNEGATIVE   1
#define DIAGONAL_INDEFINITE   0
#define DIAGONAL_NONPOSITIVE   -1
#define DIAGONAL_NEGATIVE   -2
#define DIAGONAL_ZERO   10
#define DIAGONAL_INDEFINITE_WITH_ZEROS   11

Functions

PetscErrorCode RegisterSimpleModules (void)
PetscErrorCode DeRegisterSimpleModules (void)
PetscErrorCode RegisterVarianceModules (void)
PetscErrorCode DeRegisterVarianceModules (void)
PetscErrorCode RegisterNormalityModules (void)
PetscErrorCode CommutatorNormFAllowSqrtTimes (int n)
PetscErrorCode RegisterStructureModules (void)
PetscErrorCode DeRegisterStructureModules (void)
PetscErrorCode RegisterSpectrumModules (void)
PetscErrorCode DeregisterSpectrumModules (void)
PetscErrorCode SpectrumComputePreconditionedSpectrum (void)
PetscErrorCode SpectrumComputeUnpreconditionedSpectrum (void)
PetscErrorCode RegisterJPLModules (void)
PetscErrorCode RegisterIprsModules (void)
PetscErrorCode AnaModRegisterSalsaModules (void)
PetscErrorCode AnaModDeregisterSalsaModules (void)

Detailed Description

Prototypes for using the standard modules.

Definition in file anamodsalsamodules.h.


Define Documentation

#define DIAGONAL_INDEFINITE   0

Definition at line 41 of file anamodsalsamodules.h.

Referenced by ComputeDiagonal().

#define DIAGONAL_INDEFINITE_WITH_ZEROS   11

Definition at line 45 of file anamodsalsamodules.h.

#define DIAGONAL_NEGATIVE   -2

Definition at line 43 of file anamodsalsamodules.h.

Referenced by ComputeDiagonal().

#define DIAGONAL_NONNEGATIVE   1

Definition at line 40 of file anamodsalsamodules.h.

Referenced by ComputeDiagonal().

#define DIAGONAL_NONPOSITIVE   -1

Definition at line 42 of file anamodsalsamodules.h.

Referenced by ComputeDiagonal().

#define DIAGONAL_POSITIVE   2

Definition at line 39 of file anamodsalsamodules.h.

Referenced by ComputeDiagonal().

#define DIAGONAL_ZERO   10

Definition at line 44 of file anamodsalsamodules.h.

Referenced by ComputeDiagonal().


Function Documentation

PetscErrorCode AnaModDeregisterSalsaModules ( void  )

Definition at line 30 of file anamodsalsa.c.

References DeRegisterSimpleModules(), DeregisterSpectrumModules(), DeRegisterStructureModules(), and DeRegisterVarianceModules().

Referenced by main().

{
  PetscErrorCode ierr;
  PetscFunctionBegin;

  ierr = DeRegisterSimpleModules(); CHKERRQ(ierr);
  ierr = DeRegisterVarianceModules(); CHKERRQ(ierr);
  ierr = DeRegisterStructureModules(); CHKERRQ(ierr);
  ierr = DeregisterSpectrumModules(); CHKERRQ(ierr);

  PetscFunctionReturn(0);
}

Here is the call graph for this function:

PetscErrorCode AnaModRegisterSalsaModules ( void  )

Definition at line 7 of file anamodsalsa.c.

References CommutatorNormFAllowSqrtTimes(), RegisterIprsModules(), RegisterJPLModules(), RegisterLapackModules(), RegisterNormalityModules(), RegisterSimpleModules(), RegisterSpectrumModules(), RegisterStructureModules(), RegisterVarianceModules(), and SpectrumComputeUnpreconditionedSpectrum().

Referenced by main().

{
  PetscErrorCode ierr;
  PetscFunctionBegin;

  ierr = RegisterSimpleModules(); CHKERRQ(ierr);
  ierr = RegisterVarianceModules(); CHKERRQ(ierr);
  ierr = RegisterNormalityModules(); CHKERRQ(ierr);
  ierr = CommutatorNormFAllowSqrtTimes(10);
  ierr = RegisterStructureModules(); CHKERRQ(ierr);
  ierr = RegisterSpectrumModules(); CHKERRQ(ierr);
  ierr = SpectrumComputeUnpreconditionedSpectrum(); CHKERRQ(ierr);
  ierr = RegisterJPLModules(); CHKERRQ(ierr);
  ierr = RegisterIprsModules(); CHKERRQ(ierr);
#if defined(HAVE_LAPACK)
  ierr = RegisterLapackModules(); CHKERRQ(ierr);
#endif

  PetscFunctionReturn(0);
}

Here is the call graph for this function:

PetscErrorCode CommutatorNormFAllowSqrtTimes ( int  n)

Definition at line 281 of file normal.c.

Referenced by AnaModRegisterSalsaModules().

{
  sqrt_times = n;
  return 0;
}
PetscErrorCode DeRegisterSimpleModules ( void  )

Definition at line 692 of file simple.c.

Referenced by AnaModDeregisterSalsaModules().

{
  PetscFunctionBegin;
  PetscFunctionReturn(0);
}
PetscErrorCode DeregisterSpectrumModules ( void  )

Definition at line 1413 of file spectrum.c.

Referenced by AnaModDeregisterSalsaModules().

{
#if defined(HAVE_SLEPC)
  PetscErrorCode ierr;
  PetscFunctionBegin;
  ierr = SlepcFinalize(); CHKERRQ(ierr);
  PetscFunctionReturn(0);
#else
  PetscFunctionBegin;
  PetscFunctionReturn(0);
#endif
}
PetscErrorCode DeRegisterStructureModules ( void  )

Definition at line 718 of file structure.c.

Referenced by AnaModDeregisterSalsaModules().

{
  PetscFunctionBegin;
  PetscFunctionReturn(0);
}
PetscErrorCode DeRegisterVarianceModules ( void  )

Definition at line 333 of file variance.c.

Referenced by AnaModDeregisterSalsaModules().

{
  PetscFunctionBegin;
  PetscFunctionReturn(0);
}
PetscErrorCode RegisterIprsModules ( void  )

Definition at line 524 of file iprs.c.

References ANALYSISDOUBLE, ANALYSISINTEGER, AvgDiagDist(), AvgNnzpRow(), LoBand(), NDiags(), Nnz(), NnzDia(), NnzLow(), NnzUp(), RegisterModule(), RelSymm(), SigmaDiagDist(), and UpBand().

Referenced by AnaModRegisterSalsaModules(), and AnaModRegisterStandardModules().

{
  PetscErrorCode ierr;
  PetscFunctionBegin;

  ierr = RegisterModule
    ("iprs","nnzup",ANALYSISINTEGER,&NnzUp); CHKERRQ(ierr);
  ierr = RegisterModule
    ("iprs","nnzlow",ANALYSISINTEGER,&NnzLow); CHKERRQ(ierr);
  ierr = RegisterModule
    ("iprs","nnzdia",ANALYSISINTEGER,&NnzDia); CHKERRQ(ierr);

  ierr = RegisterModule
    ("iprs","nnz",ANALYSISINTEGER,&Nnz); CHKERRQ(ierr);
  ierr = RegisterModule
    ("iprs","avgnnzprow",ANALYSISINTEGER,&AvgNnzpRow); CHKERRQ(ierr);
  ierr = RegisterModule
    ("iprs","avgdistfromdiag",ANALYSISINTEGER,&AvgNnzpRow); CHKERRQ(ierr);

  ierr = RegisterModule
    ("iprs","relsymm",ANALYSISDOUBLE,&RelSymm); CHKERRQ(ierr);

  ierr = RegisterModule
    ("iprs","upband",ANALYSISINTEGER,&UpBand); CHKERRQ(ierr);
  ierr = RegisterModule
    ("iprs","loband",ANALYSISINTEGER,&LoBand); CHKERRQ(ierr);

  ierr = RegisterModule
    ("iprs","n-nonzero-diags",ANALYSISINTEGER,&NDiags); CHKERRQ(ierr);
  ierr = RegisterModule
    ("iprs","avg-diag-dist",ANALYSISDOUBLE,&AvgDiagDist); CHKERRQ(ierr);
  ierr = RegisterModule
    ("iprs","sigma-diag-dist",ANALYSISDOUBLE,&SigmaDiagDist); CHKERRQ(ierr);

  PetscFunctionReturn(0);
}

Here is the call graph for this function:

PetscErrorCode RegisterJPLModules ( void  )

Definition at line 523 of file jpl.c.

References ANALYSISINTARRAY, ANALYSISINTEGER, ColourOffsets(), Colours(), ColourSizes(), NColours(), and RegisterModule().

Referenced by AnaModRegisterSalsaModules(), and AnaModRegisterStandardModules().

{
  PetscErrorCode ierr;
  PetscFunctionBegin;

  ierr = RegisterModule
    ("jpl","n-colours",ANALYSISINTEGER,&NColours); CHKERRQ(ierr);
  ierr = RegisterModule
    ("jpl","colour-set-sizes",ANALYSISINTARRAY,&ColourSizes); CHKERRQ(ierr);
  ierr = RegisterModule
    ("jpl","colour-offsets",ANALYSISINTARRAY,&ColourOffsets); CHKERRQ(ierr);
  ierr = RegisterModule
    ("jpl","colours",ANALYSISINTARRAY,&Colours); CHKERRQ(ierr);

  PetscFunctionReturn(0);
}

Here is the call graph for this function:

PetscErrorCode RegisterNormalityModules ( void  )

Definition at line 581 of file normal.c.

References ANALYSISDOUBLE, Commutator(), DepartureLee95(), DepartureLee96L(), DepartureLee96U(), DepartureRuhe75(), RegisterModule(), and TraceA2().

Referenced by AnaModRegisterSalsaModules(), and AnaModRegisterStandardModules().

{
  PetscErrorCode ierr;
  PetscFunctionBegin;

  ierr = RegisterModule
    ("normal","trace-asquared",ANALYSISDOUBLE,&TraceA2); CHKERRQ(ierr);
  ierr = RegisterModule
    ("normal","commutator-normF",ANALYSISDOUBLE,&Commutator); CHKERRQ(ierr);

  ierr = RegisterModule
    ("normal","ruhe75-bound",ANALYSISDOUBLE,&DepartureRuhe75); CHKERRQ(ierr);

  ierr = RegisterModule
    ("normal","lee95-bound",ANALYSISDOUBLE,&DepartureLee95); CHKERRQ(ierr);

  ierr = RegisterModule
    ("normal","lee96-ubound",ANALYSISDOUBLE,&DepartureLee96U); CHKERRQ(ierr);
  ierr = RegisterModule
    ("normal","lee96-lbound",ANALYSISDOUBLE,&DepartureLee96L); CHKERRQ(ierr);

  PetscFunctionReturn(0);
}

Here is the call graph for this function:

PetscErrorCode RegisterSimpleModules ( void  )

Declare norm-like modules that can be performed with simple calculations.

Definition at line 655 of file simple.c.

References ANALYSISDOUBLE, ANALYSISINTEGER, DiagonalDominance(), norm1(), normF(), normInf(), NUnstruct(), RegisterModule(), SymmetryANorm(), SymmetryFANorm(), SymmetryFSNorm(), SymmetrySNorm(), Trace(), and TraceAbs().

Referenced by AnaModRegisterSalsaModules(), and AnaModRegisterStandardModules().

{
  PetscErrorCode ierr;
  PetscFunctionBegin;

  ierr = RegisterModule
    ("simple","trace",ANALYSISDOUBLE,&Trace); CHKERRQ(ierr);
  ierr = RegisterModule
    ("simple","trace-abs",ANALYSISDOUBLE,&TraceAbs); CHKERRQ(ierr);

  ierr = RegisterModule
    ("simple","norm1",ANALYSISDOUBLE,&norm1); CHKERRQ(ierr);
  ierr = RegisterModule
    ("simple","normInf",ANALYSISDOUBLE,&normInf); CHKERRQ(ierr);
  ierr = RegisterModule
    ("simple","normF",ANALYSISDOUBLE,&normF); CHKERRQ(ierr);

  ierr = RegisterModule
    ("simple","diagonal-dominance",ANALYSISDOUBLE,&DiagonalDominance); CHKERRQ(ierr);

  ierr = RegisterModule
    ("simple","symmetry-snorm",ANALYSISDOUBLE,&SymmetrySNorm); CHKERRQ(ierr);
  ierr = RegisterModule
    ("simple","symmetry-anorm",ANALYSISDOUBLE,&SymmetryANorm); CHKERRQ(ierr);
  ierr = RegisterModule
    ("simple","symmetry-fsnorm",ANALYSISDOUBLE,&SymmetryFSNorm); CHKERRQ(ierr);
  ierr = RegisterModule
    ("simple","symmetry-fanorm",ANALYSISDOUBLE,&SymmetryFANorm); CHKERRQ(ierr);

  ierr = RegisterModule
    ("structure","n-struct-unsymm",ANALYSISINTEGER,&NUnstruct); CHKERRQ(ierr);

  PetscFunctionReturn(0);
}

Here is the call graph for this function:

PetscErrorCode RegisterSpectrumModules ( void  )

Definition at line 1342 of file spectrum.c.

References ANALYSISDBLARRAY, ANALYSISDOUBLE, ANALYSISINTEGER, DeclareCategoryOptionFunction(), Kappa(), MaxEVbyImIm(), MaxEVbyImRe(), MaxEVbyMagIm(), MaxEVbyMagRe(), MaxEVbyRealIm(), MaxEVbyRealRe(), MinEVbyMagIm(), MinEVbyMagRe(), NRitzValues(), PosFraction(), RegisterModule(), RitzValuesC(), RitzValuesR(), SigmaMax(), SigmaMin(), SpectrumAX(), SpectrumAY(), SpectrumCX(), SpectrumCY(), and SpectrumOptions().

Referenced by AnaModRegisterSalsaModules(), and AnaModRegisterStandardModules().

{
  PetscErrorCode ierr;
  PetscFunctionBegin;
#if defined(HAVE_SLEPC)
  ierr = SlepcInitialize(0,0,0,0); CHKERRQ(ierr);
#endif

  ierr = RegisterModule
    ("spectrum","n-ritz-values",ANALYSISINTEGER,&NRitzValues); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","ritz-values-r",ANALYSISDBLARRAY,&RitzValuesR); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","ritz-values-c",ANALYSISDBLARRAY,&RitzValuesC); CHKERRQ(ierr);
  /*
  ierr = RegisterModule
    ("spectrum","hessenberg",ANALYSISDBLARRAY,&Hessenberg); CHKERRQ(ierr);
  */

  ierr = RegisterModule
    ("spectrum","ellipse-ax",ANALYSISDOUBLE,&SpectrumAX); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","ellipse-ay",ANALYSISDOUBLE,&SpectrumAY); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","ellipse-cx",ANALYSISDOUBLE,&SpectrumCX); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","ellipse-cy",ANALYSISDOUBLE,&SpectrumCY); CHKERRQ(ierr);

  ierr = RegisterModule
    ("spectrum","kappa",ANALYSISDOUBLE,&Kappa); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","positive-fraction",ANALYSISDOUBLE,&PosFraction); CHKERRQ(ierr);

  ierr = RegisterModule
    ("spectrum","sigma-max",ANALYSISDOUBLE,&SigmaMax); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","sigma-min",ANALYSISDOUBLE,&SigmaMin); CHKERRQ(ierr);

  ierr = RegisterModule
    ("spectrum","lambda-max-by-magnitude-re",
     ANALYSISDOUBLE,&MaxEVbyMagRe); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","lambda-max-by-magnitude-im",
     ANALYSISDOUBLE,&MaxEVbyMagIm); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","lambda-min-by-magnitude-re",
     ANALYSISDOUBLE,&MinEVbyMagRe); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","lambda-min-by-magnitude-im",
     ANALYSISDOUBLE,&MinEVbyMagIm); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","lambda-max-by-real-part-re",
     ANALYSISDOUBLE,&MaxEVbyRealRe); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","lambda-max-by-real-part-im",
     ANALYSISDOUBLE,&MaxEVbyRealIm); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","lambda-max-by-im-part-re",
     ANALYSISDOUBLE,&MaxEVbyImRe); CHKERRQ(ierr);
  ierr = RegisterModule
    ("spectrum","lambda-max-by-im-part-im",
     ANALYSISDOUBLE,&MaxEVbyImIm); CHKERRQ(ierr);

  ierr = DeclareCategoryOptionFunction
    ("spectrum",&SpectrumOptions); CHKERRQ(ierr);

  PetscFunctionReturn(0);
}

Here is the call graph for this function:

PetscErrorCode RegisterStructureModules ( void  )

Definition at line 669 of file structure.c.

References ANALYSISINTARRAY, ANALYSISINTEGER, BlockSize(), DiagDefinite(), DiagZeroStart(), DummyRows(), DummyRowsKind(), LBandWidth(), LeftSkyline(), MaxNNonZerosPerRow(), MinNNonZerosPerRow(), NDummyRows(), NNonZeros(), nRows(), RBandWidth(), RegisterModule(), RightSkyline(), and Symmetry().

Referenced by AnaModRegisterSalsaModules(), and AnaModRegisterStandardModules().

{
  PetscErrorCode ierr;
  PetscFunctionBegin;

  ierr = RegisterModule
    ("structure","nrows",ANALYSISINTEGER,&nRows); CHKERRQ(ierr);
  ierr = RegisterModule
    ("structure","symmetry",ANALYSISINTEGER,&Symmetry); CHKERRQ(ierr);

  ierr = RegisterModule
    ("structure","nnzeros",ANALYSISINTEGER,&NNonZeros); CHKERRQ(ierr);
  ierr = RegisterModule
    ("structure","max-nnzeros-per-row",ANALYSISINTEGER,
     &MaxNNonZerosPerRow); CHKERRQ(ierr);
  ierr = RegisterModule
    ("structure","min-nnzeros-per-row",ANALYSISINTEGER,
     &MinNNonZerosPerRow); CHKERRQ(ierr);

  ierr = RegisterModule
    ("structure","left-bandwidth",ANALYSISINTEGER,&LBandWidth); CHKERRQ(ierr);
  ierr = RegisterModule
    ("structure","right-bandwidth",ANALYSISINTEGER,&RBandWidth); CHKERRQ(ierr);

  ierr = RegisterModule
    ("structure","left-skyline",ANALYSISINTARRAY,&LeftSkyline); CHKERRQ(ierr);
  ierr = RegisterModule
    ("structure","right-skyline",ANALYSISINTARRAY,&RightSkyline); CHKERRQ(ierr);

  ierr = RegisterModule
    ("structure","n-dummy-rows",ANALYSISINTEGER,&NDummyRows); CHKERRQ(ierr);
  ierr = RegisterModule
    ("structure","dummy-rows-kind",ANALYSISINTEGER,&DummyRowsKind); CHKERRQ(ierr);
  ierr = RegisterModule
    ("structure","dummy-rows",ANALYSISINTARRAY,&DummyRows); CHKERRQ(ierr);

  ierr = RegisterModule
    ("structure","diag-zerostart",ANALYSISINTEGER,&DiagZeroStart); CHKERRQ(ierr);
  ierr = RegisterModule
    ("structure","diag-definite",ANALYSISINTEGER,&DiagDefinite); CHKERRQ(ierr);

  ierr = RegisterModule
    ("structure","blocksize",ANALYSISINTEGER,&BlockSize); CHKERRQ(ierr);

  PetscFunctionReturn(0);
}

Here is the call graph for this function:

PetscErrorCode RegisterVarianceModules ( void  )

Definition at line 311 of file variance.c.

References ANALYSISDOUBLE, ANALYSISINTEGER, ColVariability(), DiagonalAverage(), DiagonalSign(), DiagonalVariance(), RegisterModule(), and RowVariability().

Referenced by AnaModRegisterSalsaModules(), and AnaModRegisterStandardModules().

{
  PetscErrorCode ierr;
  PetscFunctionBegin;

  ierr = RegisterModule
    ("variance","row-variability",ANALYSISDOUBLE,&RowVariability); CHKERRQ(ierr);
  ierr = RegisterModule
    ("variance","col-variability",ANALYSISDOUBLE,&ColVariability); CHKERRQ(ierr);

  ierr = RegisterModule
    ("variance","diagonal-average",ANALYSISDOUBLE,&DiagonalAverage); CHKERRQ(ierr);
  ierr = RegisterModule
    ("variance","diagonal-variance",ANALYSISDOUBLE,&DiagonalVariance); CHKERRQ(ierr);
  ierr = RegisterModule
    ("variance","diagonal-sign",ANALYSISINTEGER,&DiagonalSign); CHKERRQ(ierr);

  PetscFunctionReturn(0);
}

Here is the call graph for this function:

PetscErrorCode SpectrumComputePreconditionedSpectrum ( void  )

Definition at line 94 of file spectrum.c.

References use_prec.

{
  PetscFunctionBegin;
  use_prec = 1;
  PetscFunctionReturn(0);
}
PetscErrorCode SpectrumComputeUnpreconditionedSpectrum ( void  )

Definition at line 103 of file spectrum.c.

References use_prec.

Referenced by AnaModRegisterSalsaModules().

{
  PetscFunctionBegin;
  use_prec = 0;
  PetscFunctionReturn(0);
}