aboutsummaryrefslogtreecommitdiff
path: root/init.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2016-08-28 10:07:20 +0200
committerAnton Khirnov <anton@khirnov.net>2016-08-28 11:14:30 +0200
commit2926c4ea6f9e34b8962a08dff372252537473bda (patch)
treeb64afad877bf5dff429c704af4e484cf57ee2dae /init.c
parent63b25eca76d8481a0fdad339464d1eb617826583 (diff)
basis: disentangle the API from the global solver API
Diffstat (limited to 'init.c')
-rw-r--r--init.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/init.c b/init.c
index 5f9e3e6..fa15325 100644
--- a/init.c
+++ b/init.c
@@ -22,6 +22,7 @@
#include <stdio.h>
#include "brill_data.h"
+#include "basis.h"
#include "internal.h"
#include "qfunc.h"
@@ -35,8 +36,10 @@ static int brill_init_check_options(BDContext *bd)
if (!s->qfunc)
return ret;
- s->basis[0] = &bdi_sb_even_basis;
- s->basis[1] = &bdi_sb_even_basis;
+ s->basis[0] = bdi_basis_init(BASIS_FAMILY_SB_EVEN, bd->basis_scale_factor[0]);
+ s->basis[1] = bdi_basis_init(BASIS_FAMILY_SB_EVEN, bd->basis_scale_factor[0]);
+ if (!s->basis[0] || !s->basis[1])
+ return -ENOMEM;
s->nb_colloc_points[0] = bd->nb_coeffs[0];
s->nb_colloc_points[1] = bd->nb_coeffs[1];
@@ -108,6 +111,9 @@ void bd_context_free(BDContext **pbd)
s = bd->priv;
+ bdi_basis_free(&s->basis[0]);
+ bdi_basis_free(&s->basis[1]);
+
bdi_qfunc_free(&s->qfunc);
free(s->coeffs);