| 423 | } |
| 424 | |
| 425 | static __forceinline Vertex eval(const Vertex matrix[4][4], const Vertex f[2][2], const float& uu, const float& vv) |
| 426 | { |
| 427 | Vertex_t v_11, v_12, v_22, v_21; |
| 428 | computeInnerVertices(matrix,f,uu,vv,v_11, v_12, v_22, v_21); |
| 429 | |
| 430 | const Vec4<float> Bu = BezierBasis::eval(uu); |
| 431 | const Vec4<float> Bv = BezierBasis::eval(vv); |
| 432 | |
| 433 | return madd(Bv.x,madd(Bu.x,matrix[0][0],madd(Bu.y,matrix[0][1],madd(Bu.z,matrix[0][2],Bu.w * matrix[0][3]))), |
| 434 | madd(Bv.y,madd(Bu.x,matrix[1][0],madd(Bu.y,v_11 ,madd(Bu.z,v_12 ,Bu.w * matrix[1][3]))), |
| 435 | madd(Bv.z,madd(Bu.x,matrix[2][0],madd(Bu.y,v_21 ,madd(Bu.z,v_22 ,Bu.w * matrix[2][3]))), |
| 436 | Bv.w*madd(Bu.x,matrix[3][0],madd(Bu.y,matrix[3][1],madd(Bu.z,matrix[3][2],Bu.w * matrix[3][3])))))); |
| 437 | } |
| 438 | |
| 439 | static __forceinline Vertex eval_du(const Vertex matrix[4][4], const Vertex f[2][2], const float uu, const float vv) // approximative derivative |
| 440 | { |
no test coverage detected