/** @(#) numericalap/logisticnewtondogleg.h */
#ifndef LOGISTICNEWTONDOGLEG_H
#define LOGISTICNEWTONDOGLEG_H
//----------------------------------------------------------------------------
#include "../adjustedrecipes/qrdcmp.cpp"
#include "../adjustedrecipes/qrsolv.cpp"
#include "../functionnd/functionnd.h"
#include "../functionnd/functionnd_1d.h"
#include "../matrixdouble/squaredmatrix.h"
#include "../matrixdouble/vectordouble.h"
#include "../mathpos/mathpos.h" // sign, MACHEPS
#include "../utilpos/interfacepos.h"
#include "factorizecholesky.cpp"
#include "doglegdriver.cpp"
//#include "finitejacobi.cpp";
#include <iostream> // salida
#include <fstream>
#include <algorithm> // max
#include <cmath>
#include <iostream>
#include <stdexcept> // runtime_exception
using namespace std;
void logisticMatrices(VectorDouble &t, VectorDouble &P, VectorDouble &xc,
VectorDouble &ri, RectangularMatrix &J,
VectorDouble &g, SquaredMatrix &H);
void logisticNewtonDogLeg(int n, VectorDouble &t, VectorDouble &P,
VectorDouble &xc, double &fc,
VectorDouble &Sx,
int iterations,
double maxstep, double steptol,
double &delta,
double eta,
int logType, int waitType,
string pathFile)
throw (runtime_error);
void checkLogisticNewtonDogLeg(int n, VectorDouble &t, VectorDouble &P,
VectorDouble &xc, double &fc,
VectorDouble &Sx,
int iterations,
double maxstep, double steptol,
double &delta,
double eta,
int logType, int waitType,
string pathFile)
throw (invalid_argument, runtime_error);
//----------------------------------------------------------------------------
#endif
// Fin------------------------------------------------------------------------