g1blendingd.h

Go to the documentation of this file.
00001 
00002 /* ///////////////////////////////////////////////////////////////////////// */
00003 /* This file is a part of the BSTools package                                */
00004 /* written by Przemyslaw Kiciak                                              */
00005 /* ///////////////////////////////////////////////////////////////////////// */
00006 /* (C) Copyright by Przemyslaw Kiciak, 2010, 2013                            */
00007 /* this package is distributed under the terms of the                        */
00008 /* Lesser GNU Public License, see the file COPYING.LIB                       */
00009 /* ///////////////////////////////////////////////////////////////////////// */
00010 /* this file was written by Mateusz Markowski                                */
00011 /* and modified by Przemyslaw Kiciak                                         */
00012 
00013 #ifndef G1BLENDINGD_H
00014 #define G1BLENDINGD_H
00015 
00016 #ifndef PKVARIA_H
00017 #include "pkvaria.h"
00018 #endif
00019 #ifndef PKNUM_H
00020 #include "pknum.h"
00021 #endif
00022 #ifndef PKGEOM_H
00023 #include "pkgeom.h"
00024 #endif
00025 #ifndef MULTIBS_H
00026 #include "multibs.h"
00027 #endif
00028 
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032 
00033 int g1bl_NiSize ( int nkn );
00034 int g1bl_NijSize ( int nkn );
00035 int g1bl_MijSize ( int nkn ); 
00036 
00037 boolean g1bl_SetupBiharmAMatrixd ( int lastknotu, int lastknotv,
00038                                int *n, int **prof, double **Amat, double ***arow );
00039 boolean g1bl_SetupBiharmRHSd ( int lastknotu, int lastknotv,
00040                                int spdimen, int pitch, const double *cpoints,
00041                                double *rhs );
00042 
00043 boolean g1bl_SetupClosedBiharmAMatrixd ( int lastknotu, int lastknotv,
00044                                int *n, int **prof, double **Amat, double ***arow );
00045 boolean g1bl_SetupClosedBiharmRHSd ( int lastknotu, int lastknotv,
00046                                int spdimen, int pitch, const double *cpoints,
00047                                double *rhs );
00048 
00049 void g1bl_TabNid ( int nkn, double *bf, double *dbf, double *ddbf,
00050                    double *Nitab );
00051 void g1bl_TabNijd ( int nkn, double *bf, double *dbf, double *ddbf,
00052                     double *Nijtab );
00053 double g1bl_UFuncd ( int nkn, const double *qcoeff, double *Nitab,
00054                      int lastknotu, int lastknotv, int pitch, point3d *cp,
00055                      char *dirty,
00056                      double tC, double *ftab );
00057                      
00058 
00059 double g1bl_QFuncd ( int nkn, const double *qcoeff, double *Nitab,
00060                      int lastknotu, int lastknotv, int pitch, point3d *cp,
00061                      char *dirty,
00062                      double tC, double *ftab );
00063                      
00064 double g1bl_biharmFuncd ( int nkn, const double *qcoeff, double *Nitab,
00065                      int lastknotu, int lastknotv, int pitch, point3d *cp,
00066                      char *dirty,
00067                      double tC, double *ftab );
00068                      
00069 void g1bl_UFuncGradd ( int nkn, const double *qcoeff, double *Nitab,
00070                        int lastknotu, int lastknotv,
00071                        int pitch, point3d *cp, char *dirty,
00072                        double tC, double *ftab, double *gtab,
00073                        double *func, double *grad );
00074 void g1bl_UFuncGradHessiand ( int nkn, const double *qcoeff, double *Nitab,
00075                               double *Nijtab, double *Mijtab,
00076                               int lastknotu, int lastknotv,
00077                               int pitch, point3d *cp, char *dirty,
00078                               double tC, double *ftab, double *gtab, double *htab,
00079                               double *func, double *grad,
00080                               int hsize, const int *prof, double **hrows );
00081 double g1bl_SurfNetDiameterSqd ( int lastknotu, int lastknotv,
00082                                  int pitch, const point3d *cp );
00083 
00084 boolean g1bl_InitBlSurfaceOptLMTd ( int lastknotu, int lastknotv, int pitch,
00085                                     point3d *cp,
00086                                     double C, double dO, double dM,
00087                                     int nkn1, int nkn2,
00088                                     void **data );
00089 boolean g1bl_IterBlSurfaceOptLMTd ( void *data, boolean *finished );
00090 void g1bl_OptLMTDeallocated ( void **data );
00091 boolean g1bl_FindBlSurfaceLMTd ( int lastknotu, int lastknotv, int pitch,
00092                                  point3d *cp,
00093                                  double C, double dO, double dM,
00094                                  int maxit, int nkn1, int nkn2 );
00095 
00096 
00097 boolean g1bl_InitBlSurfaceConstrOptLMTd ( int lastknotu, int lastknotv, int pitch,
00098                                           point3d *cp,
00099                                           int nconstr, double *constrmat,
00100                                           double *constrrhs,
00101                                           double C, double dO, double dM,
00102                                           int nkn1, int nkn2,
00103                                           void **data );
00104 boolean g1bl_IterBlSurfaceConstrOptLMTd ( void *data, boolean *finished );
00105 void g1bl_ConstrOptLMTDeallocated ( void **data );
00106 boolean g1bl_FindBlSurfaceConstrLMTd ( int lastknotu, int lastknotv, int pitch,
00107                                        point3d *cp,
00108                                        int nconstr, double *constrmat,
00109                                        double *constrrhs,
00110                                        double C, double dO, double dM,
00111                                        int maxit, int nkn1, int nkn2 );
00112 
00113 
00114 boolean g1bl_ClosedInitBlSurfaceOptLMTd ( int lastknotu, int lastknotv, int pitch,
00115                                           point3d *cp,
00116                                           double C, double dO, double dM,
00117                                           int nkn1, int nkn2,
00118                                           void **data );
00119 boolean g1bl_ClosedIterBlSurfaceOptLMTd ( void *data, boolean *finished );
00120 void g1bl_ClosedOptLMTDeallocated ( void **data );
00121 boolean g1bl_ClosedFindBlSurfaceLMTd ( int lastknotu, int lastknotv, int pitch,
00122                                        point3d *cp,
00123                                        double C, double dO, double dM,
00124                                        int maxit, int nkn1, int nkn2 );
00125 
00126 
00127 boolean g1bl_ClosedInitBlSurfaceConstrOptLMTd (
00128                    int lastknotu, int lastknotv, int pitch, point3d *cp,
00129                    int nconstr, double *constrmat, double *constrrhs,
00130                    double C, double dO, double dM, int nkn1, int nkn2,
00131                    void **data );
00132 boolean g1bl_ClosedIterBlSurfaceConstrOptLMTd ( void *data, boolean *finished );
00133 void g1bl_ClosedConstrOptLMTDeallocated ( void **data );
00134 boolean g1bl_ClosedFindBlSurfaceConstrLMTd (
00135                    int lastknotu, int lastknotv, int pitch, point3d *cp,
00136                    int nconstr, double *constrmat, double *constrrhs,
00137                    double C, double dO, double dM,
00138                    int maxit, int nkn1, int nkn2 );
00139 
00140 boolean g1bl_SetupULConstraintsd ( int lastknotu, int lastknotv, int spdimen,
00141                                    int ppitch, double *cp,
00142                                    int nucurv, double *ucknots,
00143                                    int cpitch, double *uccp,
00144                                    int *nconstr, double *cmat, double *crhs );
00145 
00146 boolean g1bl_SetupUNLConstraintsd ( int lastknotu, int lastknotv,
00147                                     int ppitch, point3d *cp,
00148                                     int nucurv, double *ucknots,
00149                                     int cpitch, point3d *uccp,
00150                                     int *nconstr, double *cmat, double *crhs );
00151 
00152 
00153 boolean g1bl_SetupClosedULConstraintsd ( int lastknotu, int lastknotv, int spdimen,
00154                                          int ppitch, double *cp,
00155                                          int nucurv, double *ucknots,
00156                                          int cpitch, double *uccp,
00157                                          int *nconstr, double *cmat, double *crhs );
00158 
00159 boolean g1bl_SetupClosedUNLConstraintsd ( int lastknotu, int lastknotv,
00160                                           int ppitch, point3d *cp,
00161                                           int nucurv, double *ucknots,
00162                                           int cpitch, point3d *uccp,
00163                                           int *nconstr, double *cmat, double *crhs );
00164 
00165 
00166 boolean g1bl_FuncTSQFd ( int nkn,
00167                          int lastknotu, int lastknotv, int pitch, point3d *cp,
00168                          double tC,
00169                          double *fT, double *fS, double *fQ, double *fF );
00170 
00171 #ifdef __cplusplus
00172 }
00173 #endif
00174 
00175 #endif /*G1BLENDINGD_H*/
00176