5cf50ee9a8
- sistemate maiuscole/minuscole nei nomi dei file inclusi.
68 lines
2.2 KiB
C++
68 lines
2.2 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2018-2018
|
|
//----------------------------------------------------------------------------
|
|
// File : LUA_PolynomialRoots.cpp Data : 07.08.18 Versione : 1.8h1
|
|
// Contenuto : Funzioni di calcolo radici di polinomi per LUA.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 07.08.18 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
//--------------------------- Include ----------------------------------------
|
|
#include "stdafx.h"
|
|
#include "LUA.h"
|
|
#include "/EgtDev/Include/ENkPolynomialRoots.h"
|
|
#include "/EgtDev/Include/ENmLuaAux.h"
|
|
#include "/EgtDev/Include/EGnStringUtils.h"
|
|
|
|
using namespace std ;
|
|
|
|
//-------------------------------------------------------------------------------
|
|
static int
|
|
LuaPolynomialRoots( lua_State* L)
|
|
{
|
|
// 1 parametro
|
|
DBLVECTOR vdPoly ;
|
|
LuaCheckParam( L, 1, vdPoly)
|
|
LuaClearStack( L) ;
|
|
// eseguo il calcolo delle radici del polinomio a coefficienti reali
|
|
int nDegree = int( vdPoly.size() - 1) ;
|
|
DBLVECTOR vdRoot ;
|
|
int nZeros = PolynomialRoots( nDegree, vdPoly, vdRoot) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, nZeros) ;
|
|
LuaSetParam( L, vdRoot) ;
|
|
return 2 ;
|
|
}
|
|
|
|
//-------------------------------------------------------------------------------
|
|
static int
|
|
LuaCplxPolynomialRoots( lua_State* L)
|
|
{
|
|
// 1 parametro
|
|
CPLXVECTOR vcpPoly ;
|
|
LuaCheckParam( L, 1, vcpPoly)
|
|
LuaClearStack( L) ;
|
|
// eseguo il calcolo delle radici del polinomio a coefficienti reali
|
|
int nDegree = int( vcpPoly.size() - 1) ;
|
|
CPLXVECTOR vcpRoot ;
|
|
int nZeros = PolynomialRoots( nDegree, vcpPoly, vcpRoot) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, nZeros) ;
|
|
LuaSetParam( L, vcpRoot) ;
|
|
return 2 ;
|
|
}
|
|
|
|
//-------------------------------------------------------------------------------
|
|
bool
|
|
LuaInstallPolynomialRoots( LuaMgr& luaMgr)
|
|
{
|
|
bool bOk = ( &luaMgr != nullptr) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtPolynomialRoots", LuaPolynomialRoots) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtCplxPolynomialRoots", LuaCplxPolynomialRoots) ;
|
|
return bOk ;
|
|
}
|