36template <
class IT,
class NT>
43template <
class IT,
class NT>
52template <
class IT,
class NT>
66template <
class IT,
class NT>
85 std::copy(
rhs.ir,
rhs.ir+nz, ir);
86 std::copy(
rhs.num,
rhs.num+nz, num);
89 std::copy(
rhs.jc,
rhs.jc+n+1, jc);
94template <
class IT,
class NT>
106template <
class IT,
class NT>
144template <
class IT,
class NT>
145template <
typename UnaryOperation,
typename GlobalIT>
154 for (
IT i = 0; i < n; ++i)
156 for (
IT j = jc[i];
j < jc[i+1]; ++
j)
173 for (
IT i = 0; i < n; ++i)
214template <
class IT,
class NT>
227 std::copy(jc, jc +
cut + 1,
A->jc);
228 std::copy(ir, ir + jc[
cut],
A->ir);
229 std::copy(num, num + jc[
cut],
A->num);
233 if (nz - jc[
cut] == 0)
238 std::copy(jc +
cut, jc + n + 1,
B->jc);
241 std::copy(ir + jc[
cut], ir + nz,
B->ir);
242 std::copy(num + jc[
cut], num + nz,
B->num);
248template <
class IT,
class NT>
263 std::copy(
A->jc,
A->jc +
A->n, jc);
264 std::copy(
B->jc,
B->jc +
B->n + 1, jc +
A->n);
268 std::copy(
A->ir,
A->ir +
A->nz, ir);
269 std::copy(
B->ir,
B->ir +
B->nz, ir +
A->nz);
271 std::copy(
A->num,
A->num +
A->nz, num);
272 std::copy(
B->num,
B->num +
B->nz, num +
A->nz);
void Merge(const Csc< IT, NT > *A, const Csc< IT, NT > *B, IT cut)
Csc< IT, NT > * PruneI(UnaryOperation unary_op, bool inPlace, GlobalIT rowOffset, GlobalIT colOffset)
Csc< IT, NT > & operator=(const Csc< IT, NT > &rhs)
void Resize(IT nsize)
Does not change the dimension.
void Split(Csc< IT, NT > *&A, Csc< IT, NT > *&B, IT cut)