File indexing completed on 2024-12-22 04:09:51
0001 ///////////////////////////////////////////////////////////////////////////// 0002 // einspline: a library for creating and evaluating B-splines // 0003 // Copyright (C) 2007 Kenneth P. Esler, Jr. // 0004 // // 0005 // This program is free software; you can redistribute it and/or modify // 0006 // it under the terms of the GNU General Public License as published by // 0007 // the Free Software Foundation; either version 2 of the License, or // 0008 // (at your option) any later version. // 0009 // // 0010 // This program is distributed in the hope that it will be useful, // 0011 // but WITHOUT ANY WARRANTY; without even the implied warranty of // 0012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // 0013 // GNU General Public License for more details. // 0014 // // 0015 // You should have received a copy of the GNU General Public License // 0016 // along with this program; if not, write to the Free Software // 0017 // Foundation, Inc., 51 Franklin Street, Fifth Floor, // 0018 // Boston, MA 02110-1301 USA // 0019 ///////////////////////////////////////////////////////////////////////////// 0020 0021 #ifndef MULTI_BSPLINE_EVAL_Z_H 0022 #define MULTI_BSPLINE_EVAL_Z_H 0023 0024 0025 /************************************************************/ 0026 /* 1D double-precision, complex evaulation functions */ 0027 /************************************************************/ 0028 void 0029 eval_multi_UBspline_1d_z (multi_UBspline_1d_z *spline, 0030 double x, 0031 complex_double* restrict vals); 0032 0033 void 0034 eval_multi_UBspline_1d_z_vg (multi_UBspline_1d_z *spline, 0035 double x, 0036 complex_double* restrict vals, 0037 complex_double* restrict grads); 0038 0039 void 0040 eval_multi_UBspline_1d_z_vgl (multi_UBspline_1d_z *spline, 0041 double x, 0042 complex_double* restrict vals, 0043 complex_double* restrict grads, 0044 complex_double* restrict lapl); 0045 0046 0047 void 0048 eval_multi_UBspline_1d_z_vgh (multi_UBspline_1d_z *spline, 0049 double x, 0050 complex_double* restrict vals, 0051 complex_double* restrict grads, 0052 complex_double* restrict hess); 0053 0054 0055 /************************************************************/ 0056 /* 2D double-precision, complex evaulation functions */ 0057 /************************************************************/ 0058 void 0059 eval_multi_UBspline_2d_z (multi_UBspline_2d_z *spline, 0060 double x, double y, 0061 complex_double* restrict vals); 0062 0063 void 0064 eval_multi_UBspline_2d_z_vg (multi_UBspline_2d_z *spline, 0065 double x, double y, 0066 complex_double* restrict vals, 0067 complex_double* restrict grads); 0068 0069 void 0070 eval_multi_UBspline_2d_z_vgl (multi_UBspline_2d_z *spline, 0071 double x, double y, 0072 complex_double* restrict vals, 0073 complex_double* restrict grads, 0074 complex_double* restrict lapl); 0075 0076 void 0077 eval_multi_UBspline_2d_z_vgh (multi_UBspline_2d_z *spline, 0078 double x, double y, 0079 complex_double* restrict vals, 0080 complex_double* restrict grads, 0081 complex_double* restrict hess); 0082 0083 /************************************************************/ 0084 /* 3D double-precision, complex evaulation functions */ 0085 /************************************************************/ 0086 void 0087 eval_multi_UBspline_3d_z (multi_UBspline_3d_z *spline, 0088 double x, double y, double z, 0089 complex_double* restrict vals); 0090 0091 void 0092 eval_multi_UBspline_3d_z_vg (multi_UBspline_3d_z *spline, 0093 double x, double y, double z, 0094 complex_double* restrict vals, 0095 complex_double* restrict grads); 0096 0097 void 0098 eval_multi_UBspline_3d_z_vgl (multi_UBspline_3d_z *spline, 0099 double x, double y, double z, 0100 complex_double* restrict vals, 0101 complex_double* restrict grads, 0102 complex_double* restrict lapl); 0103 0104 void 0105 eval_multi_UBspline_3d_z_vgh (multi_UBspline_3d_z *spline, 0106 double x, double y, double z, 0107 complex_double* restrict vals, 0108 complex_double* restrict grads, 0109 complex_double* restrict hess); 0110 0111 0112 #endif