Skip to content

Commit aaaf677

Browse files
committed
tested support for space-time generalized linear models with fe_ls_separable and fe_ls_parabolic solver
1 parent 8b07f29 commit aaaf677

File tree

13 files changed

+7220
-5303
lines changed

13 files changed

+7220
-5303
lines changed

fdaPDE/src/solvers/fe_ls_parabolic.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,20 @@ template <> class fe_ls_parabolic<direct_tag> {
473473
return P(lambda[0], lambda[1]);
474474
}
475475
matrix_t P() const { return P(1.0, 1.0); }
476+
double ftPf(double lambda_D, double lambda_T) {
477+
if (std::array<double, n_lambda> {lambda_D, lambda_T} != lambda_saved_ || W_changed_) {
478+
fit(lambda_D, lambda_T);
479+
}
480+
if (!PT_.has_value()) { PT_ = kronecker(L__, R0__); }
481+
return lambda_D * g_.dot(R0_ * g_) + lambda_T * f_.dot((*PT_) * f_);
482+
}
483+
template <typename LambdaT>
484+
requires(internals::is_vector_like_v<LambdaT>)
485+
double ftPf(const LambdaT& lambda) {
486+
fdapde_assert(lambda.size() == n_lambda);
487+
return internals::apply_index_pack<n_lambda>([&]<int... Ns>() { return ftPf(lambda[Ns]...); });
488+
}
489+
vector_t lmbPsi(const vector_t& rhs) const { return Psi_ * rhs; }
476490
vector_t fn() const { return Psi_ * f_; }
477491

478492
// observers

fdaPDE/src/solvers/fe_ls_separable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ template <> class fe_ls_separable<direct_tag> {
482482
if (std::array<double, n_lambda> {lambda_D, lambda_T} != lambda_saved_ || W_changed_) {
483483
fit(lambda_D, lambda_T);
484484
}
485-
return f_.dot((lambda_D * (*PD_) + lambda_T * (*PT_)) * f_);
485+
return f_.dot(P(lambda_D, lambda_T) * f_);
486486
}
487487
template <typename LambdaT>
488488
requires(internals::is_vector_like_v<LambdaT>)

test/data/gsr/05/design_matrix.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"","V1","V2"
1+
"","x1","x2"
22
"1","0.418485939633086890","0.457156015809428051"
33
"2","0.108602500820680001","0.774587130959841996"
44
"3","0.750327214988281588","0.411973074630381630"

test/data/gsr/05/response.csv

Lines changed: 2121 additions & 531 deletions
Large diffs are not rendered by default.

test/data/gsr/06/IC.mtx

Lines changed: 0 additions & 266 deletions
This file was deleted.

0 commit comments

Comments
 (0)