Mercurial > forge
comparison extra/nurbs/src/tbasisfun.cc @ 12672:59e8aae64812 octave-forge
prepare for release
author | cdf |
---|---|
date | Mon, 17 Aug 2015 10:23:44 +0000 |
parents | 37d08939bb7b |
children |
comparison
equal
deleted
inserted
replaced
12671:20e8aca47b2c | 12672:59e8aae64812 |
---|---|
67 return; | 67 return; |
68 } | 68 } |
69 } | 69 } |
70 | 70 |
71 double ln = u - U(0); | 71 double ln = u - U(0); |
72 double ld = U(U.length () - 2) - U(0); | 72 double ld = U(U.numel () - 2) - U(0); |
73 if (ld != 0) | 73 if (ld != 0) |
74 { | 74 { |
75 double tmp; | 75 double tmp; |
76 onebasisfun__ (u, p-1, U.extract (0, U.length () - 2), &tmp); | 76 onebasisfun__ (u, p-1, U.extract (0, U.numel () - 2), &tmp); |
77 *N += ln * tmp / ld; | 77 *N += ln * tmp / ld; |
78 } | 78 } |
79 double dn = U(U.length () - 1) - u; | 79 double dn = U(U.numel () - 1) - u; |
80 double dd = U(U.length () - 1) - U(1); | 80 double dd = U(U.numel () - 1) - U(1); |
81 if (dd != 0) | 81 if (dd != 0) |
82 { | 82 { |
83 double tmp; | 83 double tmp; |
84 onebasisfun__ (u, p-1, U.extract (1, U.length () - 1), &tmp); | 84 onebasisfun__ (u, p-1, U.extract (1, U.numel () - 1), &tmp); |
85 *N += dn * tmp / dd; | 85 *N += dn * tmp / dd; |
86 } | 86 } |
87 return; | 87 return; |
88 } | 88 } |
89 | 89 |
102 *Nder = 0.0; | 102 *Nder = 0.0; |
103 return; | 103 return; |
104 } | 104 } |
105 else { | 105 else { |
106 double ln = u - U(0); | 106 double ln = u - U(0); |
107 double ld = U(U.length () - 2) - U(0); | 107 double ld = U(U.numel () - 2) - U(0); |
108 | 108 |
109 if (ld != 0) | 109 if (ld != 0) |
110 { | 110 { |
111 onebasisfun__ (u, p-1, U.extract (0, U.length () - 2), &aux); | 111 onebasisfun__ (u, p-1, U.extract (0, U.numel () - 2), &aux); |
112 aux = aux / ld; | 112 aux = aux / ld; |
113 *N += ln * aux; | 113 *N += ln * aux; |
114 *Nder += p * aux; | 114 *Nder += p * aux; |
115 } | 115 } |
116 | 116 |
117 double dn = U(U.length () - 1) - u; | 117 double dn = U(U.numel () - 1) - u; |
118 double dd = U(U.length () - 1) - U(1); | 118 double dd = U(U.numel () - 1) - U(1); |
119 | 119 |
120 if (dd != 0) | 120 if (dd != 0) |
121 { | 121 { |
122 onebasisfun__ (u, p-1, U.extract (1, U.length () - 1), &aux); | 122 onebasisfun__ (u, p-1, U.extract (1, U.numel () - 1), &aux); |
123 aux = aux / dd; | 123 aux = aux / dd; |
124 *N += dn *aux; | 124 *N += dn *aux; |
125 *Nder -= p * aux; | 125 *Nder -= p * aux; |
126 } | 126 } |
127 } | 127 } |
179 } | 179 } |
180 } | 180 } |
181 else | 181 else |
182 { | 182 { |
183 RowVector p = args(1).row_vector_value (); | 183 RowVector p = args(1).row_vector_value (); |
184 if (p.length() == 2) | 184 if (p.numel () == 2) |
185 { | 185 { |
186 Cell C = args(2).cell_value (); | 186 Cell C = args(2).cell_value (); |
187 RowVector U = C(0).row_vector_value (true, true); | 187 RowVector U = C(0).row_vector_value (true, true); |
188 RowVector V = C(1).row_vector_value (true, true); | 188 RowVector V = C(1).row_vector_value (true, true); |
189 | 189 |
213 } | 213 } |
214 retval(1) = Nder; | 214 retval(1) = Nder; |
215 } | 215 } |
216 | 216 |
217 } | 217 } |
218 else if (p.length() == 3) | 218 else if (p.numel () == 3) |
219 { | 219 { |
220 Cell C = args(2).cell_value (); | 220 Cell C = args(2).cell_value (); |
221 RowVector U = C(0).row_vector_value (true, true); | 221 RowVector U = C(0).row_vector_value (true, true); |
222 RowVector V = C(1).row_vector_value (true, true); | 222 RowVector V = C(1).row_vector_value (true, true); |
223 RowVector W = C(2).row_vector_value (true, true); | 223 RowVector W = C(2).row_vector_value (true, true); |