diff options
Diffstat (limited to 'src/emu/netlist/analog/nld_solver.h')
-rw-r--r-- | src/emu/netlist/analog/nld_solver.h | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/src/emu/netlist/analog/nld_solver.h b/src/emu/netlist/analog/nld_solver.h index a0cdec5c786..44e5ccf0158 100644 --- a/src/emu/netlist/analog/nld_solver.h +++ b/src/emu/netlist/analog/nld_solver.h @@ -48,107 +48,6 @@ struct netlist_solver_parameters_t netlist_time m_nt_sync_delay; }; -class vector_ops_t -{ -public: - - vector_ops_t(int size) - : m_dim(size) - { - } - - virtual ~vector_ops_t() {} - - virtual const nl_double sum(const nl_double * v) = 0; - virtual void sum2(const nl_double * RESTRICT v1, const nl_double * RESTRICT v2, nl_double & RESTRICT s1, nl_double & RESTRICT s2) = 0; - virtual void addmult(nl_double * RESTRICT v1, const nl_double * RESTRICT v2, const nl_double &mult) = 0; - virtual void sum2a(const nl_double * RESTRICT v1, const nl_double * RESTRICT v2, const nl_double * RESTRICT v3abs, nl_double & RESTRICT s1, nl_double & RESTRICT s2, nl_double & RESTRICT s3abs) = 0; - - virtual const nl_double sumabs(const nl_double * v) = 0; - - static vector_ops_t *create_ops(const int size); - -protected: - int m_dim; - -private: - -}; - -template <int m_N> -class vector_ops_impl_t : public vector_ops_t -{ -public: - - vector_ops_impl_t() - : vector_ops_t(m_N) - { - } - - vector_ops_impl_t(int size) - : vector_ops_t(size) - { - nl_assert(m_N == 0); - } - - virtual ~vector_ops_impl_t() {} - - ATTR_HOT inline const int N() const { if (m_N == 0) return m_dim; else return m_N; } - - const nl_double sum(const nl_double * v) - { - const nl_double * RESTRICT vl = v; - nl_double tmp = 0.0; - for (int i=0; i < N(); i++) - tmp += vl[i]; - return tmp; - } - - void sum2(const nl_double * RESTRICT v1, const nl_double * RESTRICT v2, nl_double & RESTRICT s1, nl_double & RESTRICT s2) - { - const nl_double * RESTRICT v1l = v1; - const nl_double * RESTRICT v2l = v2; - for (int i=0; i < N(); i++) - { - s1 += v1l[i]; - s2 += v2l[i]; - } - } - - void addmult(nl_double * RESTRICT v1, const nl_double * RESTRICT v2, const nl_double &mult) - { - nl_double * RESTRICT v1l = v1; - const nl_double * RESTRICT v2l = v2; - for (int i=0; i < N(); i++) - { - v1l[i] += v2l[i] * mult; - } - } - - void sum2a(const nl_double * RESTRICT v1, const nl_double * RESTRICT v2, const nl_double * RESTRICT v3abs, nl_double & RESTRICT s1, nl_double & RESTRICT s2, nl_double & RESTRICT s3abs) - { - const nl_double * RESTRICT v1l = v1; - const nl_double * RESTRICT v2l = v2; - const nl_double * RESTRICT v3l = v3abs; - for (int i=0; i < N(); i++) - { - s1 += v1l[i]; - s2 += v2l[i]; - s3abs += fabs(v3l[i]); - } - } - - const nl_double sumabs(const nl_double * v) - { - const nl_double * RESTRICT vl = v; - nl_double tmp = 0.0; - for (int i=0; i < N(); i++) - tmp += fabs(vl[i]); - return tmp; - } - -private: -}; class ATTR_ALIGNED(64) terms_t { |