Skip to content

Commit

Permalink
Added interface to generate models using an array of NcmSParams
Browse files Browse the repository at this point in the history
  • Loading branch information
vitenti committed Dec 18, 2022
1 parent 3f0cba8 commit 67818c8
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 2 deletions.
47 changes: 45 additions & 2 deletions numcosmo/math/ncm_model_builder.c
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,50 @@ ncm_model_builder_add_vparam (NcmModelBuilder *mb, guint default_length, const g
ncm_vparam_free (vparam);
}

/**
* ncm_model_builder_add_sparams:
* @mb: a #NcmModelBuilder
* @sparams: (element-type NcmSParam): an array of #NcmSParam objects
*
* Adds all #NcmSParam objects in @sparams to @mb.
*
*/
void
ncm_model_builder_add_sparams (NcmModelBuilder *mb, NcmObjArray *sparams)
{
gint i;

for (i = 0; i < sparams->len; i++)
{
NcmSParam *sparam = NCM_SPARAM (ncm_obj_array_get (sparams, i));
g_assert (NCM_IS_SPARAM (sparam));
ncm_model_builder_add_sparam_obj (mb, sparam);
}
}

/**
* ncm_model_builder_get_sparams:
* @mb: a #NcmModelBuilder
*
* Returns: (transfer full): a #NcmObjArray containing all #NcmSParam objects in @mb.
*/
NcmObjArray *
ncm_model_builder_get_sparams (NcmModelBuilder *mb)
{
NcmObjArray *oa = ncm_obj_array_new ();
gint i;

for (i = 0; i < mb->sparams->len; i++)
{
NcmSParam *sparam = NCM_SPARAM (g_ptr_array_index (mb->sparams, i));
GObject *obj = G_OBJECT (ncm_sparam_ref (sparam));

ncm_obj_array_add (oa, obj);
}

return oa;
}

void
_ncm_model_builder_class_init (gpointer g_class, gpointer class_data)
{
Expand Down Expand Up @@ -368,7 +412,6 @@ ncm_model_builder_create (NcmModelBuilder *mb)

}



return mb->type;
}

5 changes: 5 additions & 0 deletions numcosmo/math/ncm_model_builder.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include <numcosmo/math/ncm_cfg.h>
#include <numcosmo/math/ncm_sparam.h>
#include <numcosmo/math/ncm_vparam.h>
#include <numcosmo/math/ncm_obj_array.h>

G_BEGIN_DECLS

Expand Down Expand Up @@ -77,6 +78,10 @@ void ncm_model_builder_add_vparam (NcmModelBuilder *mb, guint default_length, co

GType ncm_model_builder_create (NcmModelBuilder *mb);

void ncm_model_builder_add_sparams (NcmModelBuilder *mb, NcmObjArray *sparams);
NcmObjArray *ncm_model_builder_get_sparams (NcmModelBuilder *mb);


G_END_DECLS

#endif /* _NCM_MODEL_BUILDER_H_ */

0 comments on commit 67818c8

Please sign in to comment.