The current CLF interface assumes a single conditioning variable. We should generalize this so conditional luminosity functions can depend on more than one condition.
For example, instead of only supporting something like:
phi = clf.phi(luminosity, halo_mass)
we should allow models that depend on multiple quantities, such as:
phi = clf.phi(luminosity, halo_mass, redshift)
phi = clf.phi(luminosity, halo_mass, galaxy_type)
phi = clf.phi(luminosity, halo_mass, environment)
Motivation behind this:
Many realistic CLF models depend on more than one variable, for example halo mass plus redshift, galaxy type, central/satellite component, or environment. Supporting multiple conditioning variables would make the CLF API more flexible and easier to extend.
Desired outcome:
Refactor the CLF interface so models can declare and receive multiple conditioning variables cleanly, without hardcoding a single condition argument throughout the code. Existing single-condition CLF models should continue to work.
The current CLF interface assumes a single conditioning variable. We should generalize this so conditional luminosity functions can depend on more than one condition.
For example, instead of only supporting something like:
we should allow models that depend on multiple quantities, such as:
Motivation behind this:
Many realistic CLF models depend on more than one variable, for example halo mass plus redshift, galaxy type, central/satellite component, or environment. Supporting multiple conditioning variables would make the CLF API more flexible and easier to extend.
Desired outcome:
Refactor the CLF interface so models can declare and receive multiple conditioning variables cleanly, without hardcoding a single condition argument throughout the code. Existing single-condition CLF models should continue to work.