FRX SDK Documentation 2025 SP0
Loading...
Searching...
No Matches
NmPolynom.h
Go to the documentation of this file.
1#pragma once
2
3//
4// (C) Copyright 2005-2024 by Graebert GmbH.
5//
6// Permission to use, copy, modify, and distribute this software in
7// object code form for any purpose and without fee is hereby granted,
8// provided that the above copyright notice appears in all copies and
9// that both that copyright notice and the limited warranty and
10// restricted rights notice below appear in all supporting
11// documentation.
12//
13// GRAEBERT PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
14// GRAEBERT SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
15// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. GRAEBERT GMBH
16// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
17// UNINTERRUPTED OR ERROR FREE.
18
19class NmVector;
20
22{
23public:
26 NmPolynom(double);
28 NmPolynom(void);
42 NmPolynom derivative(void)const ;
43 NmPolynom euclid( NmPolynom const &, NmPolynom &)const ;
44 NmPolynom euclid(double,double &)const ;
45 NmPolynom operator*( NmPolynom const &)const ;
46 NmPolynom operator+( NmPolynom const &)const ;
47 NmPolynom operator-( NmPolynom const &)const ;
48 NmPolynom operator/( NmPolynom const &)const ;
49 NmPolynom operator/(double)const ;
50 NmVector coeff(void)const ;
51 double & operator[](int);
52 double degradation(double)const ;
53 double height(void)const ;
54 double longValue(double)const ;
55 double norm(void)const ;
56 double operator()(double)const ;
57 double operator[](int)const ;
58 double value(double)const ;
59 int bracket( NmVector &, NmVector &,double);
60 int degree(void)const ;
61 int polish(double &)const ;
62 int root(double &)const ;
63 int root(double &,double &)const ;
64 int rootCount(double,double,double);
65 int rootCount(int,double);
66 void d1value(double,double &,double &)const ;
67 void d2value(double,double * const)const ;
68 void estimate(double,double,double &,double &)const ;
69 void root( NmVector &)const ;
70
71private:
72 NmPolynom & releaseSturm(void);
73 NmPolynom sturm(double);
74 int sturmCount(double,double)const ;
75 void dichotomy(double,double,int,int &, NmVector &, NmVector &,double);
76
77};
NmPolynom & operator*=(double)
int degree(void) const
NmPolynom(double)
double & operator[](int)
NmPolynom operator/(double) const
NmPolynom operator*(NmPolynom const &) const
int rootCount(int, double)
NmPolynom euclid(double, double &) const
NmPolynom(void)
NmPolynom derivative(void) const
NmPolynom(NmVector const &)
void root(NmVector &) const
double value(double) const
NmPolynom(int)
NmPolynom & operator/=(NmPolynom const &)
NmPolynom & operator=(NmPolynom const &)
NmVector coeff(void) const
void d1value(double, double &, double &) const
NmPolynom & negate(void)
NmPolynom & operator=(double)
NmPolynom & normalize(double)
double longValue(double) const
double operator[](int) const
NmPolynom & operator*=(NmPolynom const &)
int bracket(NmVector &, NmVector &, double)
NmPolynom & reverse(void)
NmPolynom & reset(int)
void d2value(double, double *const) const
double height(void) const
double norm(void) const
NmPolynom operator+(NmPolynom const &) const
NmPolynom & operator/=(double)
int polish(double &) const
int root(double &) const
NmPolynom euclid(NmPolynom const &, NmPolynom &) const
double operator()(double) const
NmPolynom operator-(NmPolynom const &) const
int rootCount(double, double, double)
NmPolynom & operator+=(NmPolynom const &)
NmPolynom(NmPolynom const &)
void estimate(double, double, double &, double &) const
double degradation(double) const
NmPolynom & operator-=(NmPolynom const &)
~NmPolynom(void)
NmPolynom operator/(NmPolynom const &) const
int root(double &, double &) const