CoastalME (Coastal Modelling Environment)
Simulates the long-term behaviour of complex coastlines
Loading...
Searching...
No Matches
smooth_line.cpp File Reference

Smoothing routines for CGeomLine objects. More...

#include <cmath>
#include <iostream>
#include "cme.h"
#include "simulation.h"

Go to the source code of this file.

Typedefs

typedef double Matrix[SAVGOL_POLYNOMIAL_MAX_ORDER+2][SAVGOL_POLYNOMIAL_MAX_ORDER+2]
 

Functions

void LUDecomp (Matrix A, int const N, int const np, int nIndexArray[], int *nDCode, int *nICode)
 Given an N x N matrix A, this routine replaces it by the LU decomposition of a rowwise permutation of itself. A and N are input. nIndexArray is an output vector which records the row permutation effected by the partial pivoting; D is output as -1 or 1, depending on whether the number of row interchanges was even or odd, respectively. This routine is used in combination with LULinearSolve to solve linear equations or to invert a matrix. Returns with nICode = 1 if matrix is singular. Derived from a C original by Jean-Pierre Moreau (jpmor.nosp@m.eau@.nosp@m.wanad.nosp@m.oo.f.nosp@m.r, http://jean-pierre.moreau.pagesperso-orange.fr/index.html), to whom we are much indebted.
 
void LULinearSolve (Matrix const A, int const N, int const nIndexArray[], double B[])
 Solves the set of N linear equations A . X = B. Here A is input, not as the matrix A but rather as its LU decomposition, determined by the routine LUDecomp. nIndexArray is input as the permutation vector returned by LUDecomp. B is input as the right-hand side vector B, and returns with the solution vector X. A, N and nIndexArray are not modified by this routine and can be used for successive calls with different right-hand sides. This routine is also efficient for plain matrix inversion. Derived from a C original by Jean-Pierre Moreau (jpmor.nosp@m.eau@.nosp@m.wanad.nosp@m.oo.f.nosp@m.r, http://jean-pierre.moreau.pagesperso-orange.fr/index.html), to whom we are much indebted.
 

Detailed Description

Smoothing routines for CGeomLine objects.

The Savitzky-Golay routines are modified from C originals by Jean-Pierre Moreau (jpmor.nosp@m.eau@.nosp@m.wanad.nosp@m.oo.f.nosp@m.r, http://jean-pierre.moreau.pagesperso-orange.fr/index.html), to whom we are much indebted

Author
David Favis-Mortlock
Andres Payo
Date
2025

Definition in file smooth_line.cpp.

Typedef Documentation

◆ Matrix

Definition at line 37 of file smooth_line.cpp.

Function Documentation

◆ LUDecomp()

void LUDecomp ( Matrix A,
int const N,
int const np,
int nIndexArray[],
int * nDCode,
int * nICode )

Given an N x N matrix A, this routine replaces it by the LU decomposition of a rowwise permutation of itself. A and N are input. nIndexArray is an output vector which records the row permutation effected by the partial pivoting; D is output as -1 or 1, depending on whether the number of row interchanges was even or odd, respectively. This routine is used in combination with LULinearSolve to solve linear equations or to invert a matrix. Returns with nICode = 1 if matrix is singular. Derived from a C original by Jean-Pierre Moreau (jpmor.nosp@m.eau@.nosp@m.wanad.nosp@m.oo.f.nosp@m.r, http://jean-pierre.moreau.pagesperso-orange.fr/index.html), to whom we are much indebted.

Definition at line 456 of file smooth_line.cpp.

Referenced by CSimulation::CalcSavitzkyGolay().

◆ LULinearSolve()

void LULinearSolve ( Matrix const A,
int const N,
int const nIndexArray[],
double B[] )

Solves the set of N linear equations A . X = B. Here A is input, not as the matrix A but rather as its LU decomposition, determined by the routine LUDecomp. nIndexArray is input as the permutation vector returned by LUDecomp. B is input as the right-hand side vector B, and returns with the solution vector X. A, N and nIndexArray are not modified by this routine and can be used for successive calls with different right-hand sides. This routine is also efficient for plain matrix inversion. Derived from a C original by Jean-Pierre Moreau (jpmor.nosp@m.eau@.nosp@m.wanad.nosp@m.oo.f.nosp@m.r, http://jean-pierre.moreau.pagesperso-orange.fr/index.html), to whom we are much indebted.

Definition at line 546 of file smooth_line.cpp.

Referenced by CSimulation::CalcSavitzkyGolay().