Commit 40418f97 authored by rok-cesnovar's avatar rok-cesnovar
Browse files

fixes based on Steve's comments

Showing with 10 additions and 15 deletions
+10 -15
......@@ -323,16 +323,14 @@ class cholesky_opencl : public vari {
*/
virtual void chain() {
int packed_size = M_ * (M_ + 1) / 2;
std::vector<double> L_adj_cpu(packed_size);
std::vector<double> L_val_cpu(packed_size);
std::vector<double> L_adj_cpu;
L_adj_cpu.reserve(packed_size);
std::vector<double> L_val_cpu;
L_val_cpu.reserve(packed_size);
size_t pos = 0;
for (size_type j = 0; j < M_; ++j) {
for (size_type i = j; i < M_; ++i) {
L_adj_cpu[pos] = vari_ref_L_[pos]->adj_;
L_val_cpu[pos] = vari_ref_L_[pos]->val_;
++pos;
}
for (size_type j = 0; j < packed_size; ++j) {
L_adj_cpu[j] = vari_ref_L_[j]->adj_;
L_val_cpu[j] = vari_ref_L_[j]->val_;
}
matrix_cl L(M_, M_);
matrix_cl L_adj(M_, M_);
......@@ -389,12 +387,9 @@ class cholesky_opencl : public vari {
L_adj.sub_block(C_adj, 0, 0, k, j, m_k_ind, k_j_ind);
}
packed_copy<TriangularViewCL::Lower>(L_adj_cpu, L_adj);
pos = 0;
for (size_type j = 0; j < M_; ++j)
for (size_type i = j; i < M_; ++i) {
vari_ref_A_[pos]->adj_ += L_adj_cpu[pos];
pos++;
}
for (size_type j = 0; j < packed_size; ++j) {
vari_ref_A_[j]->adj_ += L_adj_cpu[j];
}
}
};
#endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment