コード例 #1
0
ファイル: pro.cpp プロジェクト: qbolec/c
void converttobin()
{
  int temp[1024];
  binadd[0]=1;
  for(int i=0;i<110;i++)
  {
    if(goodness2[0].kdo[i]>0)
    {
      b_mult(binadd, goodness2[0].kdo[i] , temp);
      b_add(temp,BIN);
      goodness2[0].kdo[i]=0;
    }
    b_mult( binadd, k ,binadd);
  }
  binsub[0]=1;
  for(int i=0;i<110;i++)
  {
    if(goodness2[0].kdo[i]<0)
     {
       b_mult(binsub, -goodness2[0].kdo[i] , temp);
       b_sub(temp,BIN);
       goodness2[0].kdo[i]=0;
     }
    b_mult( binsub, k , binsub);
  }
}
コード例 #2
0
    inline
    Eigen::Matrix<typename boost::math::tools::promote_args<T1, T2>::type,
                  Eigen::Dynamic, 1>
    csr_matrix_times_vector(const int& m,
                            const int& n,
                            const Eigen::Matrix<T1, Eigen::Dynamic, 1>& w,
                            const std::vector<int>& v,
                            const std::vector<int>& u,
                            const Eigen::Matrix<T2, Eigen::Dynamic, 1>& b) {
      typedef typename boost::math::tools::promote_args<T1, T2>::type
        result_t;

      check_positive("csr_matrix_times_vector", "m", m);
      check_positive("csr_matrix_times_vector", "n", n);
      check_size_match("csr_matrix_times_vector", "n", n, "b", b.size());
      check_size_match("csr_matrix_times_vector", "m", m, "u", u.size() - 1);
      check_size_match("csr_matrix_times_vector", "w", w.size(), "v", v.size());
      check_size_match("csr_matrix_times_vector", "u/z",
                       u[m - 1] + csr_u_to_z(u, m - 1) - 1, "v", v.size());
      for (unsigned int i = 0; i < v.size(); ++i)
        check_range("csr_matrix_times_vector", "v[]", n, v[i]);

      Eigen::Matrix<result_t, Eigen::Dynamic, 1>  result(m);
      result.setZero();
      for (int row = 0; row < m; ++row) {
        int idx = csr_u_to_z(u, row);
        int row_end_in_w = (u[row] - stan::error_index::value) + idx;
        int i = 0;  // index into dot-product segment entries.
        Eigen::Matrix<result_t, Eigen::Dynamic, 1> b_sub(idx);
        b_sub.setZero();
        for (int nze = u[row] - stan::error_index::value;
             nze < row_end_in_w; ++nze, ++i) {
          check_range("csr_matrix_times_vector", "j", n, v[nze]);
          b_sub.coeffRef(i) = b.coeffRef(v[nze] - stan::error_index::value);
        }  // loop skipped when z is zero.
        Eigen::Matrix<T1, Eigen::Dynamic, 1>
          w_sub(w.segment(u[row] - stan::error_index::value, idx));
        result.coeffRef(row) = dot_product(w_sub, b_sub);
      }
      return result;
    }
コード例 #3
0
ファイル: SeniorVMHandle.cpp プロジェクト: dellsun/WProtect
void SeniorVMHandle::b_cmp(long _register1,long _register2)
{
  b_sub(_register1,_register2);
  pop(T_EFLAG);
  pop(T_INVALID8H);
}