コード例 #1
0
TEST(generateExpression, index_op) {
  static const bool user_facing = true;
  std::stringstream msgs;

  // expr:  row_vector
  stan::lang::double_literal dblLit(5.1);
  dblLit.string_ = "5.1";
  stan::lang::expression e1 = dblLit;
  std::vector<stan::lang::expression> elements;
  elements.push_back(e1);
  elements.push_back(e1);
  stan::lang::row_vector_expr rv1(elements);
  stan::lang::expression e2 = rv1;

  // dimensions:  vector of vector of dimensions
  std::vector<std::vector<stan::lang::expression> > dimss;
  std::vector<stan::lang::expression> dim;
  dim.push_back(stan::lang::int_literal(1));
  dimss.push_back(dim);
  stan::lang::index_op i_op(e2, dimss);
  stan::lang::expression e3 = i_op;

  // result is index into row_vector
  generate_expression(e3, user_facing, msgs);
  EXPECT_NE(msgs.str().find("stan::math::to_row_vector"), std::string::npos);
  EXPECT_NE(msgs.str().find("stan::math::array_builder<double"), std::string::npos);
  EXPECT_NE(msgs.str().find("add(5.1).array()"), std::string::npos);
  EXPECT_NE(msgs.str().find("[1]"), std::string::npos);
}
コード例 #2
0
ファイル: cpu.c プロジェクト: tykel/mash16
/* Execute 1 CPU cycle. */
void cpu_step(cpu_state* state)
{
    state->meta.old_pc = state->pc;
    /* Fetch instruction, increase PC. */
    state->i = *(instr*)(&state->m[state->pc]);
    state->pc += 4;
    /* Call function pointer table entry */
    (*op_table[i_op(state->i)])(state);
    /* Update cycles. */
    ++state->meta.cycles;
    ++state->meta.target_cycles;
}