Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/itasc/WDLSSolver.hpp')
-rw-r--r--intern/itasc/WDLSSolver.hpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/intern/itasc/WDLSSolver.hpp b/intern/itasc/WDLSSolver.hpp
new file mode 100644
index 00000000000..b56ad1ab2b8
--- /dev/null
+++ b/intern/itasc/WDLSSolver.hpp
@@ -0,0 +1,48 @@
+/* $Id: WDLSSolver.hpp 20622 2009-06-04 12:47:59Z ben2610 $
+ * WDLSSolver.hpp
+ *
+ * Created on: Jan 8, 2009
+ * Author: rubensmits
+ */
+
+#ifndef WDLSSOLVER_HPP_
+#define WDLSSOLVER_HPP_
+
+#include "Solver.hpp"
+
+namespace iTaSC {
+
+class WDLSSolver: public iTaSC::Solver {
+private:
+ e_matrix m_AWq,m_WyAWq,m_WyAWqt,m_U,m_V,m_WqV;
+ e_vector m_S,m_temp,m_Wy_ydot;
+ double m_lambda;
+ double m_epsilon;
+ double m_qmax;
+ int m_ns;
+ bool m_transpose;
+public:
+ WDLSSolver();
+ virtual ~WDLSSolver();
+
+ virtual bool init(unsigned int nq, unsigned int nc, const std::vector<bool>& gc);
+ virtual bool solve(const e_matrix& A, const e_vector& Wy, const e_vector& ydot, const e_matrix& Wq, e_vector& qdot, e_scalar& nlcoef);
+ virtual void setParam(SolverParam param, double value)
+ {
+ switch (param) {
+ case DLS_QMAX:
+ m_qmax = value;
+ break;
+ case DLS_LAMBDA_MAX:
+ m_lambda = value;
+ break;
+ case DLS_EPSILON:
+ m_epsilon = value;
+ break;
+ }
+ }
+};
+
+}
+
+#endif /* WDLSSOLVER_HPP_ */