Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Developer Issue]: M2 Quality control task list #662

Open
37 of 44 tasks
kellijohnson-NOAA opened this issue Aug 7, 2024 · 1 comment
Open
37 of 44 tasks

[Developer Issue]: M2 Quality control task list #662

kellijohnson-NOAA opened this issue Aug 7, 2024 · 1 comment
Labels
kind: refactor Restructure code to improve the implementation of FIMS P3 low priority task theme: code cleanup
Milestone

Comments

@kellijohnson-NOAA
Copy link
Contributor

kellijohnson-NOAA commented Aug 7, 2024

Description

This issue will be a collect all for small tasks that need to be completed for quality control after features are implemented in milestone 2. For example, @rklasky mentioned there are a few spelling mistakes in the code that need cleaned up. Feel free to edit this comment or post more comments below regarding small things that need to be done before our next release.

Tasks

Preview Give feedback
  1. P3 attribute: low hanging 🍎 kind: documentation theme: documentation
@kellijohnson-NOAA kellijohnson-NOAA added kind: refactor Restructure code to improve the implementation of FIMS P3 low priority task theme: code cleanup labels Aug 7, 2024
@kellijohnson-NOAA kellijohnson-NOAA added this to the Q2 milestone Aug 7, 2024
@k-doering-NOAA
Copy link
Member

As a solution for spelling mistakes in the long term, there is a github action that runs the spelling::spell_check_package() in ghactions4r: https://nmfs-fish-tools.github.io/ghactions4r/reference/use_spell_check.html

kellijohnson-NOAA added a commit that referenced this issue Sep 1, 2024
Was PR #652 and commit e0fbfb0 but
that was based on main and enough has changed that the commit had be
redone for dev. There are still some interfaces that are not documented
but they can be completed in #662.

Thanks to @Bai-Li-NOAA for this commit :)

Close #635
iantaylor-NOAA added a commit that referenced this issue Dec 5, 2024
…workflows

#662

Co-authored-by: Jane Sullivan <[email protected]>
Co-authored-by: Kathryn Doering <[email protected]>
iantaylor-NOAA added a commit that referenced this issue Dec 5, 2024
…workflows

related to #662

Co-authored-by: Jane Sullivan <[email protected]>
Co-authored-by: Kathryn Doering <[email protected]>
kellijohnson-NOAA pushed a commit that referenced this issue Dec 5, 2024
Performed in the FIMS GHA workflows
Fixes the double space was causing roxygen2 to render the file with
@Seealso rather than interpreting the @ as a tag. This caused seealso
to be needed in the WORDLIST.
Changes proirs to priors in c++ documentation

related to #662

Co-authored-by: Jane Sullivan <[email protected]>
Co-authored-by: Kathryn Doering <[email protected]>
kellijohnson-NOAA added a commit that referenced this issue Dec 5, 2024
kellijohnson-NOAA pushed a commit that referenced this issue Dec 5, 2024
Performed in the FIMS GHA workflows
Fixes the double space was causing roxygen2 to render the file with
@Seealso rather than interpreting the @ as a tag. This caused seealso
to be needed in the WORDLIST.
Changes proirs to priors in c++ documentation

related to #662

Co-authored-by: Jane Sullivan <[email protected]>
Co-authored-by: Kathryn Doering <[email protected]>
kellijohnson-NOAA added a commit that referenced this issue Dec 5, 2024
kellijohnson-NOAA pushed a commit that referenced this issue Dec 12, 2024
Many of the accessors were not documented, also increases the consistency
of the documentation.
Also fixes fleet subsetting to allow for multiple fleets rather than using
==, where it now uses %in%

Part of #662
kellijohnson-NOAA pushed a commit that referenced this issue Dec 12, 2024
Many of the accessors were not documented, also increases the consistency
of the documentation.
Also fixes fleet subsetting to allow for multiple fleets rather than using
==, where it now uses %in%

Part of #662
kellijohnson-NOAA pushed a commit that referenced this issue Dec 12, 2024
Many of the accessors were not documented, also increases the consistency
of the documentation.
Also fixes fleet subsetting to allow for multiple fleets rather than using
==, where it now uses %in%

Part of #662
kellijohnson-NOAA pushed a commit that referenced this issue Dec 12, 2024
Many of the accessors were not documented, also increases the consistency
of the documentation.
Also fixes fleet subsetting to allow for multiple fleets rather than using
==, where it now uses %in%

Part of #662
kellijohnson-NOAA pushed a commit that referenced this issue Dec 12, 2024
Many of the accessors were not documented, also increases the consistency
of the documentation.
Also fixes fleet subsetting to allow for multiple fleets rather than using
==, where it now uses %in%

Part of #662
kellijohnson-NOAA added a commit that referenced this issue Dec 30, 2024
Use full sentences and multiline comments to document things in the Rcpp
interface rather than inline comments. This leads to better roxygen output.
I also spaced things by two spaces rather than 4 for consistence but
the rest of the code needs to be fixed as well.

Part of #662
kellijohnson-NOAA pushed a commit that referenced this issue Dec 31, 2024
* fit to length data using an age-length-conversion matrix.
* Adds ParameterVector to allow for time-varying parameters.
* Wrapper functions in R to help users set up a model given their data.
* Implemented a helper function to get the parameter names throughout the
  C++ code and population the results with those names.
* Adds density functions to set up for random effects

R ----

doc(FIMSFrame): Adds documentation to accessors and increased consistency
doc(ParameterVector): Adds time-varying example to the vignette that is
  turned off by default but users can experiment
doc: Shares argument documentation across functions
doc(fims-demo): Adds example of a model that is built but not fit

feat(create_default_*()): Creates default values for FIMS parameters
feat(update_parameters()): Updates default values for FIMS parameters
feat(initialize_*()): Uses methods::new() to set up FIMS modules
feat(FIMSFit): Created FIMSFit as an S4 Class with [create_FIMSFit()]
  so people can also create a FIMSFit object without having to use
  [fit_fims()] and so the object returned by [fit_fims()] looks the
  same no matter if you want the uncertainty calculated or not via
  `get_sd`. Objects are not added to things to obj, opt, and report and
  instead they are explicitly returned as a slot in the S4 FIMSFit class
feat(estimates): In FIMSFit
feat(verbose): Uses cli_inform cli_abort. Users can now set the global
  verbose level through `options(rlib_message_verbosity = "quiet")` to stop
  cli::cli_inform() messages from coming through. This allows for the
  verbose argument to be removed from all functions. And,
  [is_fims_verbose()] can check internally in functions to see if FIMS
  is currently verbose.

fix(data1): Renamed from data_mile1 and adds length data
fix(fims-demo): Updates vignette doi Bai et al.
fix(FIMSFrame): Allows for subsetting of multiple fleets with %in%
fix(plot.FIMSFrame): Adds y and ... for plot to be properly documented
  where previously we only had x, which led to scales not being seen as a
  package that was needed. The methods proposed in #672 was a work around
  where this commit fixes the problem.
  fix(Rcpp_Parameter*): Moves to zzz.R because when in operators it was
  leading to warnings when compiling in R. The movement allows this file
  to be ran before the others and it does not matter if Rcpp_Parameter or
  Rcpp_ParameterVector is exported/defined. I also worked on the
  formatting of those functions as well as combining the documentation
  rather for similar, i.e., methods.

refactor(cli): Updates error message to use cli formatting
refactor(DESCRIPTION): Adds packages
  * Adds purrr, tidyr, tibble, stats
  * Removes tidyverse
  * Depends on R 4.1.0 because of the use of the native pipe, which is
    available in R version 4.1.0. Status-quo dependency was R 4.0.
refactor(tests): convert tests to testthat format in
  test-unit-rcpp-interface-variable-vector.R

C++ ----

doc: Remove authors, email from file headers, some cleanup to cpp file
  header with consistent use of @file, @brief, @details, and @copyright
  for every file in inst/include and notes.
doc(mainpage): Adds mainpage for doxygen as discussed by the
documentation group led by @Bai-Li-NOAA in July (notes [here](
  https://docs.google.com/document/d/1tPCSSanZ7SHaSE5SMkPoYrZh_lsswe7o5gtEyJmA0DU/edit?tab=t.0#heading=h.enmw68u5r5hm)).
doc(Parameter): Fully documents Parameter and ParameterVector matching
  documentation at the function definition with what is shown in Rcpp
  methods::show() inside R.
doc(pos): Uses pos in position for time-varying so it does not seem like
  things can only vary with time.

feat: add variable_map infrastructure
  * adds variable map as an object in information.hpp
  * adds std::vector<uint32_t> key to density_components_base
  * adds unique ID to VariableVector class and get_id function
  * resizes key and pass to densities in rcpp_distributions
feat: Uses .estimated_m and .is_random_effect_m in interface
feat(get_force_scalar): method in fims::Vector to return the first index
  if the vector is size one.
feat(get_parameter_names): Gets parameter names from C++

fix: Sets unique key for all tracked parameter/derived value in Rcpp objects
fix(information): add data error checks in information
fix(rcpp_interface): add get and set id functions to fleet interface and expose in
fix(multinomial_lpmf.hpp): make lpdf_vec to return 0 if data is missing
fix(Parameter): Removes estimated_m
fix(Makevars): Removes c++17 flag
  In favor of USE_CXX17 = "yes" and removes -w flag where this fix is
  known to work on Windows.
fix(clear): Removes everything because there was some information from
  random effects that was not being cleared leading to crashes. Many
  functions in the C++ code were also changed to CamelCase such as Clear().
  Refactored function names to match style of other member functions.
  clear() procedure creates a new instance of the information singleton object.
fix: Removes log_sigma_recruit from the Beverton--Holt
  stock--recruitment interface because it is now a part of the
  distribution associated with log_devs
fix(logging): Uses macros
  * Removes old logging
  * pretty format for output
  * added format string for json
  * created a logging vignette
  * Adds information about DFIMS_DEBUG information
  * Adds throw on error
fix: Updates name of ParameterVector id to id_m
fix: Collapses methods using S4 Group Generic Functions
fix: Defines methods for Ops, Math, and Summary
fix: Updates parameter min/max default values

refactor(model.hpp): Loops over all density modules to sum up joint
  negative log-likelihoods
refactor: Adds i=0 in for loops because R CMD check was complaining
  about significant warnings in compiling the c++ code because i was not
  initialized.
refactor(information): Improves readability
refactor: Uses C++ 17
refactor: Renames SIMULATE_F to FIMS_SIMULATE_F
refactor: Renames REPORT_F to FIMS_REPORT_F

GitHub ----

chore: change actions/checkout@v3 to v4

feat: Adds call-spell-check.yml from {ghactions4r} to spellcheck with WORDLIST

fix: Adds .json to .gitignore
fix: Adds .vscode to .gitignore
fix: Removes parallel tests because they were not helpful
fix: revert sim_num to 100 to simulate 100 sets of test data
  (see tests/testthat/fixtures/simulate-integration-test-data.R)

TODO: ----

* Remove code for processR in tests
* Find TODO statements in documentation and add the documentation
* think about renaming some of the Rcpp functions
* cli_* needs to be implemented throughout the package
* fix(fims-demo): Does not use returned object from fit_fims for plots
* no metadata object found to revise superClass error with sdreport class
* Add a standalone test (CI-only) for checking the speed of parallel runs
* fix parallel tests to avoid comparing run time with serial execution

Co-authored-by: Andrea-Havron-NOAA <[email protected]>
Co-authored-by: Bai-Li-NOAA <[email protected]>
Co-authored-by: ChristineStawitz-NOAA <[email protected]>
Co-authored-by: cmlegault <[email protected]>
Co-authored-by: Cole-Monnahan-NOAA <[email protected]>
Co-authored-by: JaneSullivan-NOAA <[email protected]>
Co-authored-by: iantaylor-NOAA <[email protected]>
Co-authored-by: k-doering-NOAA <[email protected]>
Co-authored-by: kellijohnson-NOAA <[email protected]>
Co-authored-by: KyleShertzer-NOAA <[email protected]>
Co-authored-by: msupernaw <[email protected]>
Co-authored-by: nathanvaughan-NOAA <[email protected]>
Co-authored-by: rklasky <[email protected]>

Part of #170: refactor distributions_base
Part of #388
Part of #573: add normal_lpdf
Part of #581: add lognormal_lpdf
Part of #585: add multinomial_lpmf
Part of #586
Part of #630
Part of #644
Part of #645
Part of #646
Part of #662
Part of #671
Part of #695
Part of #702
Close #672
Close #690
kellijohnson-NOAA pushed a commit that referenced this issue Jan 1, 2025
* Fits to length data using an age-to-length-conversion matrix, `data1`
  includes the necessary information needed to fit to both ages and lengths.
* Adds C++ ParameterVector to allow for the estimation of time-varying
  parameters.
* Implements R wrapper functions to facilitate
  * creating the input model specifications with `create_default_*()`,
    `update_parameters()`, and `initialize_*()`;
  * adding -999 to the missing fleet, year, age, length, etc. combinations;
  * running the model with a user-supplied argument of n_of_loops, where the
    default is three, to restart the optimizer from the previous run of nlmimb;
  * summarizing the output with the `FIMSFit()` function and class.
* Implements a switch for global verbosity within FIMS through the use
  of {cli} messages and warnings.
* Updates the logging system complete with a vignette about how to use it, the
  logging system can be used for both R and C++ errors, warnings, and
  information.
* Creates the initial infrastructure to implement random effects with density
  functions.
* Implements a helper function to get the parameter names from the
  C++ code and populate the results with those names.
* Makes lpdf_vec return 0 if data is missing.

R ----

doc(FIMSFrame): Adds documentation to accessors and increased consistency
doc(ParameterVector): Adds time-varying example to the vignette that is
  turned off by default but users can experiment
doc(fims-demo): Adds example of a model that is built but not fit
doc: Shares argument documentation across functions

feat(create_default_*()): Creates default values for FIMS parameters
feat(update_parameters()): Updates default values for FIMS parameters
feat(initialize_*()): Uses methods::new() to set up FIMS modules
feat(FIMSFit): Created FIMSFit as an S4 Class with [create_FIMSFit()]
  so people can also create a FIMSFit object without having to use
  [fit_fims()] and so the object returned by [fit_fims()] looks the
  same no matter if you want the uncertainty calculated or not via
  `get_sd`. Objects are not added to things to obj, opt, and report and
  instead they are explicitly returned as a slot in the S4 FIMSFit class
feat(estimates): In FIMSFit
feat(verbose): Uses cli_inform cli_abort. Users can now set the global
  verbose level through `options(rlib_message_verbosity = "quiet")` to stop
  cli::cli_inform() messages from coming through. This allows for the
  verbose argument to be removed from all functions. And,
  [is_fims_verbose()] can check internally in functions to see if FIMS
  is currently verbose.

fix(data1): Renamed from data_mile1 and adds length data
fix(fims-demo): Updates vignette doi Bai et al.
fix(FIMSFrame): Allows for subsetting of multiple fleets with %in%
fix(plot.FIMSFrame): Adds y and ... for plot to be properly documented
  where previously we only had x, which led to scales not being seen as a
  package that was needed. The methods proposed in #672 was a work around
  where this commit fixes the problem.
  fix(Rcpp_Parameter*): Moves to zzz.R because when in operators it was
  leading to warnings when compiling in R. The movement allows this file
  to be ran before the others and it does not matter if Rcpp_Parameter or
  Rcpp_ParameterVector is exported/defined. I also worked on the
  formatting of those functions as well as combining the documentation
  rather for similar, i.e., methods.

refactor(cli): Updates error message to use cli formatting
refactor(DESCRIPTION): Adds packages
  * Adds purrr, tidyr, tibble, stats
  * Removes tidyverse
  * Depends on R 4.1.0 because of the use of the native pipe, which is
    available in R version 4.1.0. Status-quo dependency was R 4.0.
refactor(tests): convert tests to testthat format in
  test-unit-rcpp-interface-variable-vector.R

C++ ----

doc: Remove authors, email from file headers, some cleanup to cpp file
  header with consistent use of @file, @brief, @details, and @copyright
  for every file in inst/include and notes.
doc(mainpage): Adds mainpage for doxygen as discussed by the
documentation group led by @Bai-Li-NOAA in July (notes [here](
  https://docs.google.com/document/d/1tPCSSanZ7SHaSE5SMkPoYrZh_lsswe7o5gtEyJmA0DU/edit?tab=t.0#heading=h.enmw68u5r5hm)).
doc(Parameter): Fully documents Parameter and ParameterVector matching
  documentation at the function definition with what is shown in Rcpp
  methods::show() inside R.
doc(pos): Uses pos in position for time-varying so it does not seem like
  things can only vary with time.

feat: add variable_map infrastructure
  * adds variable map as an object in information.hpp
  * adds std::vector<uint32_t> key to density_components_base
  * adds unique ID to VariableVector class and get_id function
  * resizes key and pass to densities in rcpp_distributions
feat: Uses .estimated_m and .is_random_effect_m in interface
feat(get_force_scalar): method in fims::Vector to return the first index
  if the vector is size one.
feat(get_parameter_names): Gets parameter names from C++

fix: Sets unique key for all tracked parameter/derived value in Rcpp objects
fix(information): add data error checks in information
fix(rcpp_interface): add get and set id functions to fleet interface
fix(multinomial_lpmf.hpp): make lpdf_vec to return 0 if data is missing
fix(Parameter): Removes estimated_m
fix(Makevars): Removes c++17 flag
  In favor of USE_CXX17 = "yes" and removes -w flag where this fix is
  known to work on Windows.
fix(clear): Removes everything because there was some information from
  random effects that was not being cleared leading to crashes. Many
  functions in the C++ code were also changed to CamelCase such as Clear().
  Refactored function names to match style of other member functions.
  clear() procedure creates a new instance of the information singleton object.
fix: Removes log_sigma_recruit from the Beverton--Holt
  stock--recruitment interface because it is now a part of the
  distribution associated with log_devs
fix(logging): Uses macros
  * Removes old logging
  * pretty format for output
  * added format string for json
  * created a logging vignette
  * Adds information about DFIMS_DEBUG information
  * Adds throw on error
fix: Collapses methods using S4 Group Generic Functions
fix: Defines methods for Ops, Math, and Summary
fix: Updates parameter min/max default values

refactor(model.hpp): Loops over all density modules to sum up joint
  negative log-likelihoods
refactor: Adds i=0 in for loops because R CMD check was complaining
  about significant warnings in compiling the c++ code because i was not
  initialized.
refactor(information): Improves readability
refactor: Uses C++ 17
refactor: Renames SIMULATE_F to FIMS_SIMULATE_F
refactor: Renames REPORT_F to FIMS_REPORT_F

GitHub ----

chore: change actions/checkout@v3 to v4

feat: Adds call-spell-check.yml from {ghactions4r} to spellcheck with WORDLIST

fix: Adds .json to .gitignore
fix: Adds .vscode to .gitignore
fix: Removes parallel tests because they were not helpful
fix: revert sim_num to 100 to simulate 100 sets of test data
  (see tests/testthat/fixtures/simulate-integration-test-data.R)

TODO: ----

* Remove code for processR in tests
* Find TODO statements in documentation and add the documentation
* think about renaming some of the Rcpp functions
* cli_* needs to be implemented throughout the package
* fix(fims-demo): Does not use returned object from fit_fims for plots
* no metadata object found to revise superClass error with sdreport class
* Add a standalone test (CI-only) for checking the speed of parallel runs
* fix parallel tests to avoid comparing run time with serial execution

Co-authored-by: Andrea-Havron-NOAA <[email protected]>
Co-authored-by: Bai-Li-NOAA <[email protected]>
Co-authored-by: ChristineStawitz-NOAA <[email protected]>
Co-authored-by: cmlegault <[email protected]>
Co-authored-by: Cole-Monnahan-NOAA <[email protected]>
Co-authored-by: JaneSullivan-NOAA <[email protected]>
Co-authored-by: iantaylor-NOAA <[email protected]>
Co-authored-by: k-doering-NOAA <[email protected]>
Co-authored-by: kellijohnson-NOAA <[email protected]>
Co-authored-by: KyleShertzer-NOAA <[email protected]>
Co-authored-by: msupernaw <[email protected]>
Co-authored-by: nathanvaughan-NOAA <[email protected]>
Co-authored-by: rklasky <[email protected]>

Part of #170: refactor distributions_base
Part of #388
Part of #573: add normal_lpdf
Part of #581: add lognormal_lpdf
Part of #585: add multinomial_lpmf
Part of #586
Part of #630
Part of #644
Part of #645
Part of #646
Part of #662
Part of #671
Part of #695
Part of #702
Close #672
Close #690
kellijohnson-NOAA pushed a commit that referenced this issue Jan 1, 2025
* Fits to length data using an age-to-length-conversion matrix, `data1`
  includes the necessary information needed to fit to both ages and lengths.
* Adds C++ ParameterVector to allow for the estimation of time-varying
  parameters.
* Implements R wrapper functions to facilitate
  * creating the input model specifications with `create_default_*()`,
    `update_parameters()`, and `initialize_*()`;
  * adding -999 to the missing fleet, year, age, length, etc. combinations;
  * running the model with a user-supplied argument of n_of_loops, where the
    default is three, to restart the optimizer from the previous run of nlmimb;
  * summarizing the output with the `FIMSFit()` function and class.
* Implements a switch for global verbosity within FIMS through the use
  of {cli} messages and warnings.
* Updates the logging system complete with a vignette about how to use it, the
  logging system can be used for both R and C++ errors, warnings, and
  information.
* Creates the initial infrastructure to implement random effects with density
  functions.
* Implements a helper function to get the parameter names from the
  C++ code and populate the results with those names.
* Makes lpdf_vec return 0 if data is missing.

R ----

doc(FIMSFrame): Adds documentation to accessors and increased consistency
doc(ParameterVector): Adds time-varying example to the vignette that is
  turned off by default but users can experiment
doc(fims-demo): Adds example of a model that is built but not fit
doc: Shares argument documentation across functions

feat(create_default_*()): Creates default values for FIMS parameters
feat(update_parameters()): Updates default values for FIMS parameters
feat(initialize_*()): Uses methods::new() to set up FIMS modules
feat(FIMSFit): Created FIMSFit as an S4 Class with [create_FIMSFit()]
  so people can also create a FIMSFit object without having to use
  [fit_fims()] and so the object returned by [fit_fims()] looks the
  same no matter if you want the uncertainty calculated or not via
  `get_sd`. Objects are not added to things to obj, opt, and report and
  instead they are explicitly returned as a slot in the S4 FIMSFit class
feat(estimates): In FIMSFit
feat(verbose): Uses cli_inform cli_abort. Users can now set the global
  verbose level through `options(rlib_message_verbosity = "quiet")` to stop
  cli::cli_inform() messages from coming through. This allows for the
  verbose argument to be removed from all functions. And,
  [is_fims_verbose()] can check internally in functions to see if FIMS
  is currently verbose.

fix(data1): Renamed from data_mile1 and adds length data
fix(fims-demo): Updates vignette doi Bai et al.
fix(FIMSFrame): Allows for subsetting of multiple fleets with %in%
fix(plot.FIMSFrame): Adds y and ... for plot to be properly documented
  where previously we only had x, which led to scales not being seen as a
  package that was needed. The methods proposed in #672 was a work around
  where this commit fixes the problem.
  fix(Rcpp_Parameter*): Moves to zzz.R because when in operators it was
  leading to warnings when compiling in R. The movement allows this file
  to be ran before the others and it does not matter if Rcpp_Parameter or
  Rcpp_ParameterVector is exported/defined. I also worked on the
  formatting of those functions as well as combining the documentation
  rather for similar, i.e., methods.

refactor(cli): Updates error message to use cli formatting
refactor(DESCRIPTION): Adds packages
  * Adds purrr, tidyr, tibble, stats
  * Removes tidyverse
  * Depends on R 4.1.0 because of the use of the native pipe, which is
    available in R version 4.1.0. Status-quo dependency was R 4.0.
refactor(tests): convert tests to testthat format in
  test-unit-rcpp-interface-variable-vector.R

C++ ----

doc: Remove authors, email from file headers, some cleanup to cpp file
  header with consistent use of @file, @brief, @details, and @copyright
  for every file in inst/include and notes.
doc(mainpage): Adds mainpage for doxygen as discussed by the
documentation group led by @Bai-Li-NOAA in July (notes [here](
  https://docs.google.com/document/d/1tPCSSanZ7SHaSE5SMkPoYrZh_lsswe7o5gtEyJmA0DU/edit?tab=t.0#heading=h.enmw68u5r5hm)).
doc(Parameter): Fully documents Parameter and ParameterVector matching
  documentation at the function definition with what is shown in Rcpp
  methods::show() inside R.
doc(pos): Uses pos in position for time-varying so it does not seem like
  things can only vary with time.

feat: add variable_map infrastructure
  * adds variable map as an object in information.hpp
  * adds std::vector<uint32_t> key to density_components_base
  * adds unique ID to VariableVector class and get_id function
  * resizes key and pass to densities in rcpp_distributions
feat: Uses .estimated_m and .is_random_effect_m in interface
feat(get_force_scalar): method in fims::Vector to return the first index
  if the vector is size one.
feat(get_parameter_names): Gets parameter names from C++

fix: Sets unique key for all tracked parameter/derived value in Rcpp objects
fix(information): add data error checks in information
fix(rcpp_interface): add get and set id functions to fleet interface
fix(multinomial_lpmf.hpp): make lpdf_vec to return 0 if data is missing
fix(Parameter): Removes estimated_m
fix(Makevars): Removes c++17 flag
  In favor of USE_CXX17 = "yes" and removes -w flag where this fix is
  known to work on Windows.
fix(clear): Removes everything because there was some information from
  random effects that was not being cleared leading to crashes. Many
  functions in the C++ code were also changed to CamelCase such as Clear().
  Refactored function names to match style of other member functions.
  clear() procedure creates a new instance of the information singleton object.
fix: Removes log_sigma_recruit from the Beverton--Holt
  stock--recruitment interface because it is now a part of the
  distribution associated with log_devs
fix(logging): Uses macros
  * Removes old logging
  * pretty format for output
  * added format string for json
  * created a logging vignette
  * Adds information about DFIMS_DEBUG information
  * Adds throw on error
fix: Collapses methods using S4 Group Generic Functions
fix: Defines methods for Ops, Math, and Summary
fix: Updates parameter min/max default values

refactor(model.hpp): Loops over all density modules to sum up joint
  negative log-likelihoods
refactor: Adds i=0 in for loops because R CMD check was complaining
  about significant warnings in compiling the c++ code because i was not
  initialized.
refactor(information): Improves readability
refactor: Uses C++ 17
refactor: Renames SIMULATE_F to FIMS_SIMULATE_F
refactor: Renames REPORT_F to FIMS_REPORT_F

GitHub ----

chore: change actions/checkout@v3 to v4

feat: Adds call-spell-check.yml from {ghactions4r} to spellcheck with WORDLIST

fix: Adds .json to .gitignore
fix: Adds .vscode to .gitignore
fix: Removes parallel tests because they were not helpful
fix: revert sim_num to 100 to simulate 100 sets of test data
  (see tests/testthat/fixtures/simulate-integration-test-data.R)

TODO: ----

* Remove code for processR in tests
* Find TODO statements in documentation and add the documentation
* think about renaming some of the Rcpp functions
* cli_* needs to be implemented throughout the package
* fix(fims-demo): Does not use returned object from fit_fims for plots
* no metadata object found to revise superClass error with sdreport class
* Add a standalone test (CI-only) for checking the speed of parallel runs
* fix parallel tests to avoid comparing run time with serial execution

Co-authored-by: Andrea-Havron-NOAA <[email protected]>
Co-authored-by: Bai-Li-NOAA <[email protected]>
Co-authored-by: ChristineStawitz-NOAA <[email protected]>
Co-authored-by: cmlegault <[email protected]>
Co-authored-by: Cole-Monnahan-NOAA <[email protected]>
Co-authored-by: JaneSullivan-NOAA <[email protected]>
Co-authored-by: iantaylor-NOAA <[email protected]>
Co-authored-by: k-doering-NOAA <[email protected]>
Co-authored-by: kellijohnson-NOAA <[email protected]>
Co-authored-by: KyleShertzer-NOAA <[email protected]>
Co-authored-by: msupernaw <[email protected]>
Co-authored-by: nathanvaughan-NOAA <[email protected]>
Co-authored-by: rklasky <[email protected]>

Part of #170: refactor distributions_base
Part of #388
Part of #573: add normal_lpdf
Part of #581: add lognormal_lpdf
Part of #585: add multinomial_lpmf
Part of #586
Part of #630
Part of #644
Part of #645
Part of #646
Part of #662
Part of #671
Part of #695
Part of #702
Close #672
Close #690
kellijohnson-NOAA pushed a commit that referenced this issue Jan 1, 2025
* Fits to length data using an age-to-length-conversion matrix, `data1`
  includes the necessary information needed to fit to both ages and lengths.
* Adds C++ ParameterVector to allow for the estimation of time-varying
  parameters.
* Implements R wrapper functions to facilitate
  * creating the input model specifications with `create_default_*()`,
    `update_parameters()`, and `initialize_*()`;
  * adding -999 to the missing fleet, year, age, length, etc. combinations;
  * running the model with a user-supplied argument of n_of_loops, where the
    default is three, to restart the optimizer from the previous run of nlmimb;
  * summarizing the output with the `FIMSFit()` function and class.
* Implements a switch for global verbosity within FIMS through the use
  of {cli} messages and warnings.
* Updates the logging system complete with a vignette about how to use it, the
  logging system can be used for both R and C++ errors, warnings, and
  information.
* Creates the initial infrastructure to implement random effects with density
  functions.
* Implements a helper function to get the parameter names from the
  C++ code and populate the results with those names.
* Makes lpdf_vec return 0 if data is missing.

R ----

doc(FIMSFrame): Adds documentation to accessors and increased consistency
doc(ParameterVector): Adds time-varying example to the vignette that is
  turned off by default but users can experiment
doc(fims-demo): Adds example of a model that is built but not fit
doc: Shares argument documentation across functions

feat(create_default_*()): Creates default values for FIMS parameters
feat(update_parameters()): Updates default values for FIMS parameters
feat(initialize_*()): Uses methods::new() to set up FIMS modules
feat(FIMSFit): Created FIMSFit as an S4 Class with [create_FIMSFit()]
  so people can also create a FIMSFit object without having to use
  [fit_fims()] and so the object returned by [fit_fims()] looks the
  same no matter if you want the uncertainty calculated or not via
  `get_sd`. Objects are not added to things to obj, opt, and report and
  instead they are explicitly returned as a slot in the S4 FIMSFit class
feat(estimates): In FIMSFit
feat(verbose): Uses cli_inform cli_abort. Users can now set the global
  verbose level through `options(rlib_message_verbosity = "quiet")` to stop
  cli::cli_inform() messages from coming through. This allows for the
  verbose argument to be removed from all functions. And,
  [is_fims_verbose()] can check internally in functions to see if FIMS
  is currently verbose.

fix(data1): Renamed from data_mile1 and adds length data
fix(fims-demo): Updates vignette doi Bai et al.
fix(FIMSFrame): Allows for subsetting of multiple fleets with %in%
fix(plot.FIMSFrame): Adds y and ... for plot to be properly documented
  where previously we only had x, which led to scales not being seen as a
  package that was needed. The methods proposed in #672 was a work around
  where this commit fixes the problem.
  fix(Rcpp_Parameter*): Moves to zzz.R because when in operators it was
  leading to warnings when compiling in R. The movement allows this file
  to be ran before the others and it does not matter if Rcpp_Parameter or
  Rcpp_ParameterVector is exported/defined. I also worked on the
  formatting of those functions as well as combining the documentation
  rather for similar, i.e., methods.

refactor(cli): Updates error message to use cli formatting
refactor(DESCRIPTION): Adds packages
  * Adds purrr, tidyr, tibble, stats
  * Removes tidyverse
  * Depends on R 4.1.0 because of the use of the native pipe, which is
    available in R version 4.1.0. Status-quo dependency was R 4.0.
refactor(tests): convert tests to testthat format in
  test-unit-rcpp-interface-variable-vector.R

C++ ----

doc: Remove authors, email from file headers, some cleanup to cpp file
  header with consistent use of @file, @brief, @details, and @copyright
  for every file in inst/include and notes.
doc(mainpage): Adds mainpage for doxygen as discussed by the
documentation group led by @Bai-Li-NOAA in July (notes [here](
  https://docs.google.com/document/d/1tPCSSanZ7SHaSE5SMkPoYrZh_lsswe7o5gtEyJmA0DU/edit?tab=t.0#heading=h.enmw68u5r5hm)).
doc(Parameter): Fully documents Parameter and ParameterVector matching
  documentation at the function definition with what is shown in Rcpp
  methods::show() inside R.
doc(pos): Uses pos in position for time-varying so it does not seem like
  things can only vary with time.

feat: add variable_map infrastructure
  * adds variable map as an object in information.hpp
  * adds std::vector<uint32_t> key to density_components_base
  * adds unique ID to VariableVector class and get_id function
  * resizes key and pass to densities in rcpp_distributions
feat: Uses .estimated_m and .is_random_effect_m in interface
feat(get_force_scalar): method in fims::Vector to return the first index
  if the vector is size one.
feat(get_parameter_names): Gets parameter names from C++

fix: Sets unique key for all tracked parameter/derived value in Rcpp objects
fix(information): add data error checks in information
fix(rcpp_interface): add get and set id functions to fleet interface
fix(multinomial_lpmf.hpp): make lpdf_vec to return 0 if data is missing
fix(Parameter): Removes estimated_m
fix(Makevars): Removes c++17 flag
  In favor of USE_CXX17 = "yes" and removes -w flag where this fix is
  known to work on Windows.
fix(clear): Removes everything because there was some information from
  random effects that was not being cleared leading to crashes. Many
  functions in the C++ code were also changed to CamelCase such as Clear().
  Refactored function names to match style of other member functions.
  clear() procedure creates a new instance of the information singleton object.
fix: Removes log_sigma_recruit from the Beverton--Holt
  stock--recruitment interface because it is now a part of the
  distribution associated with log_devs
fix(logging): Uses macros
  * Removes old logging
  * pretty format for output
  * added format string for json
  * created a logging vignette
  * Adds information about DFIMS_DEBUG information
  * Adds throw on error
fix: Collapses methods using S4 Group Generic Functions
fix: Defines methods for Ops, Math, and Summary
fix: Updates parameter min/max default values

refactor(model.hpp): Loops over all density modules to sum up joint
  negative log-likelihoods
refactor: Adds i=0 in for loops because R CMD check was complaining
  about significant warnings in compiling the c++ code because i was not
  initialized.
refactor(information): Improves readability
refactor: Uses C++ 17
refactor: Renames SIMULATE_F to FIMS_SIMULATE_F
refactor: Renames REPORT_F to FIMS_REPORT_F

GitHub ----

chore: change actions/checkout@v3 to v4

feat: Adds call-spell-check.yml from {ghactions4r} to spellcheck with WORDLIST

fix: Adds .json to .gitignore
fix: Adds .vscode to .gitignore
fix: Removes parallel tests because they were not helpful
fix: revert sim_num to 100 to simulate 100 sets of test data
  (see tests/testthat/fixtures/simulate-integration-test-data.R)

TODO: ----

* Remove code for processR in tests
* Find TODO statements in documentation and add the documentation
* think about renaming some of the Rcpp functions
* cli_* needs to be implemented throughout the package
* fix(fims-demo): Does not use returned object from fit_fims for plots
* no metadata object found to revise superClass error with sdreport class
* Add a standalone test (CI-only) for checking the speed of parallel runs
* fix parallel tests to avoid comparing run time with serial execution

Co-authored-by: Andrea-Havron-NOAA <[email protected]>
Co-authored-by: Bai-Li-NOAA <[email protected]>
Co-authored-by: ChristineStawitz-NOAA <[email protected]>
Co-authored-by: cmlegault <[email protected]>
Co-authored-by: Cole-Monnahan-NOAA <[email protected]>
Co-authored-by: JaneSullivan-NOAA <[email protected]>
Co-authored-by: iantaylor-NOAA <[email protected]>
Co-authored-by: k-doering-NOAA <[email protected]>
Co-authored-by: kellijohnson-NOAA <[email protected]>
Co-authored-by: KyleShertzer-NOAA <[email protected]>
Co-authored-by: msupernaw <[email protected]>
Co-authored-by: nathanvaughan-NOAA <[email protected]>
Co-authored-by: rklasky <[email protected]>

Part of #170: refactor distributions_base
Part of #388
Part of #573: add normal_lpdf
Part of #581: add lognormal_lpdf
Part of #585: add multinomial_lpmf
Part of #586
Part of #630
Part of #644
Part of #645
Part of #646
Part of #662
Part of #671
Part of #695
Part of #702
Close #672
Close #690
kellijohnson-NOAA pushed a commit that referenced this issue Jan 1, 2025
* Fits to length data using an age-to-length-conversion matrix, `data1`
  includes the necessary information needed to fit to both ages and lengths.
* Adds C++ ParameterVector to allow for the estimation of time-varying
  parameters.
* Implements R wrapper functions to facilitate
  * creating the input model specifications with `create_default_*()`,
    `update_parameters()`, and `initialize_*()`;
  * adding -999 to the missing fleet, year, age, length, etc. combinations;
  * running the model with a user-supplied argument of n_of_loops, where the
    default is three, to restart the optimizer from the previous run of nlmimb;
  * summarizing the output with the `FIMSFit()` function and class.
* Implements a switch for global verbosity within FIMS through the use
  of {cli} messages and warnings.
* Updates the logging system complete with a vignette about how to use it, the
  logging system can be used for both R and C++ errors, warnings, and
  information.
* Creates the initial infrastructure to implement random effects with density
  functions.
* Implements a helper function to get the parameter names from the
  C++ code and populate the results with those names.
* Makes lpdf_vec return 0 if data is missing.

R ----

doc(FIMSFrame): Adds documentation to accessors and increased consistency
doc(ParameterVector): Adds time-varying example to the vignette that is
  turned off by default but users can experiment
doc(fims-demo): Adds example of a model that is built but not fit
doc: Shares argument documentation across functions

feat(create_default_*()): Creates default values for FIMS parameters
feat(update_parameters()): Updates default values for FIMS parameters
feat(initialize_*()): Uses methods::new() to set up FIMS modules
feat(FIMSFit): Created FIMSFit as an S4 Class with [create_FIMSFit()]
  so people can also create a FIMSFit object without having to use
  [fit_fims()] and so the object returned by [fit_fims()] looks the
  same no matter if you want the uncertainty calculated or not via
  `get_sd`. Objects are not added to things to obj, opt, and report and
  instead they are explicitly returned as a slot in the S4 FIMSFit class
feat(estimates): In FIMSFit
feat(verbose): Uses cli_inform cli_abort. Users can now set the global
  verbose level through `options(rlib_message_verbosity = "quiet")` to stop
  cli::cli_inform() messages from coming through. This allows for the
  verbose argument to be removed from all functions. And,
  [is_fims_verbose()] can check internally in functions to see if FIMS
  is currently verbose.

fix(data1): Renamed from data_mile1 and adds length data
fix(fims-demo): Updates vignette doi Bai et al.
fix(FIMSFrame): Allows for subsetting of multiple fleets with %in%
fix(plot.FIMSFrame): Adds y and ... for plot to be properly documented
  where previously we only had x, which led to scales not being seen as a
  package that was needed. The methods proposed in #672 was a work around
  where this commit fixes the problem.
  fix(Rcpp_Parameter*): Moves to zzz.R because when in operators it was
  leading to warnings when compiling in R. The movement allows this file
  to be ran before the others and it does not matter if Rcpp_Parameter or
  Rcpp_ParameterVector is exported/defined. I also worked on the
  formatting of those functions as well as combining the documentation
  rather for similar, i.e., methods.

refactor(cli): Updates error message to use cli formatting
refactor(DESCRIPTION): Adds packages
  * Adds purrr, tidyr, tibble, stats
  * Removes tidyverse
  * Depends on R 4.1.0 because of the use of the native pipe, which is
    available in R version 4.1.0. Status-quo dependency was R 4.0.
refactor(tests): convert tests to testthat format in
  test-unit-rcpp-interface-variable-vector.R

C++ ----

doc: Remove authors, email from file headers, some cleanup to cpp file
  header with consistent use of @file, @brief, @details, and @copyright
  for every file in inst/include and notes.
doc(mainpage): Adds mainpage for doxygen as discussed by the
documentation group led by @Bai-Li-NOAA in July (notes [here](
  https://docs.google.com/document/d/1tPCSSanZ7SHaSE5SMkPoYrZh_lsswe7o5gtEyJmA0DU/edit?tab=t.0#heading=h.enmw68u5r5hm)).
doc(Parameter): Fully documents Parameter and ParameterVector matching
  documentation at the function definition with what is shown in Rcpp
  methods::show() inside R.
doc(pos): Uses pos in position for time-varying so it does not seem like
  things can only vary with time.

feat: add variable_map infrastructure
  * adds variable map as an object in information.hpp
  * adds std::vector<uint32_t> key to density_components_base
  * adds unique ID to VariableVector class and get_id function
  * resizes key and pass to densities in rcpp_distributions
feat: Uses .estimated_m and .is_random_effect_m in interface
feat(get_force_scalar): method in fims::Vector to return the first index
  if the vector is size one.
feat(get_parameter_names): Gets parameter names from C++

fix: Sets unique key for all tracked parameter/derived value in Rcpp objects
fix(information): add data error checks in information
fix(rcpp_interface): add get and set id functions to fleet interface
fix(multinomial_lpmf.hpp): make lpdf_vec to return 0 if data is missing
fix(Parameter): Removes estimated_m
fix(Makevars): Removes c++17 flag
  In favor of USE_CXX17 = "yes" and removes -w flag where this fix is
  known to work on Windows.
fix(clear): Removes everything because there was some information from
  random effects that was not being cleared leading to crashes. Many
  functions in the C++ code were also changed to CamelCase such as Clear().
  Refactored function names to match style of other member functions.
  clear() procedure creates a new instance of the information singleton object.
fix: Removes log_sigma_recruit from the Beverton--Holt
  stock--recruitment interface because it is now a part of the
  distribution associated with log_devs
fix(logging): Uses macros
  * Removes old logging
  * pretty format for output
  * added format string for json
  * created a logging vignette
  * Adds information about DFIMS_DEBUG information
  * Adds throw on error
fix: Collapses methods using S4 Group Generic Functions
fix: Defines methods for Ops, Math, and Summary
fix: Updates parameter min/max default values

refactor(model.hpp): Loops over all density modules to sum up joint
  negative log-likelihoods
refactor: Adds i=0 in for loops because R CMD check was complaining
  about significant warnings in compiling the c++ code because i was not
  initialized.
refactor(information): Improves readability
refactor: Uses C++ 17
refactor: Renames SIMULATE_F to FIMS_SIMULATE_F
refactor: Renames REPORT_F to FIMS_REPORT_F

GitHub ----

chore: change actions/checkout@v3 to v4

feat: Adds call-spell-check.yml from {ghactions4r} to spellcheck with WORDLIST

fix: Adds .json to .gitignore
fix: Adds .vscode to .gitignore
fix: Removes parallel tests because they were not helpful
fix: revert sim_num to 100 to simulate 100 sets of test data
  (see tests/testthat/fixtures/simulate-integration-test-data.R)

TODO: ----

* Remove code for processR in tests
* Find TODO statements in documentation and add the documentation
* think about renaming some of the Rcpp functions
* cli_* needs to be implemented throughout the package
* fix(fims-demo): Does not use returned object from fit_fims for plots
* no metadata object found to revise superClass error with sdreport class
* Add a standalone test (CI-only) for checking the speed of parallel runs
* fix parallel tests to avoid comparing run time with serial execution

Co-authored-by: Andrea-Havron-NOAA <[email protected]>
Co-authored-by: Bai-Li-NOAA <[email protected]>
Co-authored-by: ChristineStawitz-NOAA <[email protected]>
Co-authored-by: cmlegault <[email protected]>
Co-authored-by: Cole-Monnahan-NOAA <[email protected]>
Co-authored-by: JaneSullivan-NOAA <[email protected]>
Co-authored-by: iantaylor-NOAA <[email protected]>
Co-authored-by: k-doering-NOAA <[email protected]>
Co-authored-by: kellijohnson-NOAA <[email protected]>
Co-authored-by: KyleShertzer-NOAA <[email protected]>
Co-authored-by: msupernaw <[email protected]>
Co-authored-by: nathanvaughan-NOAA <[email protected]>
Co-authored-by: rklasky <[email protected]>

Part of #170: refactor distributions_base
Part of #388
Part of #573: add normal_lpdf
Part of #581: add lognormal_lpdf
Part of #585: add multinomial_lpmf
Part of #586
Part of #630
Part of #644
Part of #645
Part of #646
Part of #662
Part of #671
Part of #695
Part of #702
Close #672
Close #690
kellijohnson-NOAA pushed a commit that referenced this issue Jan 2, 2025
* Fits to length data using an age-to-length-conversion matrix, `data1`
  includes the necessary information needed to fit to both ages and lengths.
* Adds C++ ParameterVector to allow for the estimation of time-varying
  parameters.
* Implements R wrapper functions to facilitate
  * creating the input model specifications with `create_default_*()`,
    `update_parameters()`, and `initialize_*()`;
  * adding -999 to the missing fleet, year, age, length, etc. combinations;
  * running the model with a user-supplied argument of n_of_loops, where the
    default is three, to restart the optimizer from the previous run of nlmimb;
  * summarizing the output with the `FIMSFit()` function and class.
* Implements a switch for global verbosity within FIMS through the use
  of {cli} messages and warnings.
* Updates the logging system complete with a vignette about how to use it, the
  logging system can be used for both R and C++ errors, warnings, and
  information.
* Creates the initial infrastructure to implement random effects with density
  functions.
* Implements a helper function to get the parameter names from the
  C++ code and populate the results with those names.
* Makes lpdf_vec return 0 if data is missing.

R ----

doc(FIMSFrame): Adds documentation to accessors and increased consistency
doc(ParameterVector): Adds time-varying example to the vignette that is
  turned off by default but users can experiment
doc(fims-demo): Adds example of a model that is built but not fit
doc: Shares argument documentation across functions

feat(create_default_*()): Creates default values for FIMS parameters
feat(update_parameters()): Updates default values for FIMS parameters
feat(initialize_*()): Uses methods::new() to set up FIMS modules
feat(FIMSFit): Created FIMSFit as an S4 Class with [create_FIMSFit()]
  so people can also create a FIMSFit object without having to use
  [fit_fims()] and so the object returned by [fit_fims()] looks the
  same no matter if you want the uncertainty calculated or not via
  `get_sd`. Objects are not added to things to obj, opt, and report and
  instead they are explicitly returned as a slot in the S4 FIMSFit class
feat(estimates): In FIMSFit
feat(verbose): Uses cli_inform cli_abort. Users can now set the global
  verbose level through `options(rlib_message_verbosity = "quiet")` to stop
  cli::cli_inform() messages from coming through. This allows for the
  verbose argument to be removed from all functions. And,
  [is_fims_verbose()] can check internally in functions to see if FIMS
  is currently verbose.

fix(data1): Renamed from data_mile1 and adds length data
fix(fims-demo): Updates vignette doi Bai et al.
fix(FIMSFrame): Allows for subsetting of multiple fleets with %in%
fix(plot.FIMSFrame): Adds y and ... for plot to be properly documented
  where previously we only had x, which led to scales not being seen as a
  package that was needed. The methods proposed in #672 was a work around
  where this commit fixes the problem.
  fix(Rcpp_Parameter*): Moves to zzz.R because when in operators it was
  leading to warnings when compiling in R. The movement allows this file
  to be ran before the others and it does not matter if Rcpp_Parameter or
  Rcpp_ParameterVector is exported/defined. I also worked on the
  formatting of those functions as well as combining the documentation
  rather for similar, i.e., methods.

refactor(cli): Updates error message to use cli formatting
refactor(DESCRIPTION): Adds packages
  * Adds purrr, tidyr, tibble, stats
  * Removes tidyverse
  * Depends on R 4.1.0 because of the use of the native pipe, which is
    available in R version 4.1.0. Status-quo dependency was R 4.0.
refactor(tests): convert tests to testthat format in
  test-unit-rcpp-interface-variable-vector.R

C++ ----

doc: Remove authors, email from file headers, some cleanup to cpp file
  header with consistent use of @file, @brief, @details, and @copyright
  for every file in inst/include and notes.
doc(mainpage): Adds mainpage for doxygen as discussed by the
documentation group led by @Bai-Li-NOAA in July (notes [here](
  https://docs.google.com/document/d/1tPCSSanZ7SHaSE5SMkPoYrZh_lsswe7o5gtEyJmA0DU/edit?tab=t.0#heading=h.enmw68u5r5hm)).
doc(Parameter): Fully documents Parameter and ParameterVector matching
  documentation at the function definition with what is shown in Rcpp
  methods::show() inside R.
doc(pos): Uses pos in position for time-varying so it does not seem like
  things can only vary with time.

feat: add variable_map infrastructure
  * adds variable map as an object in information.hpp
  * adds std::vector<uint32_t> key to density_components_base
  * adds unique ID to VariableVector class and get_id function
  * resizes key and pass to densities in rcpp_distributions
feat: Uses .estimated_m and .is_random_effect_m in interface
feat(get_force_scalar): method in fims::Vector to return the first index
  if the vector is size one.
feat(get_parameter_names): Gets parameter names from C++

fix: Sets unique key for all tracked parameter/derived value in Rcpp objects
fix(information): add data error checks in information
fix(rcpp_interface): add get and set id functions to fleet interface
fix(multinomial_lpmf.hpp): make lpdf_vec to return 0 if data is missing
fix(Parameter): Removes estimated_m
fix(Makevars): Removes c++17 flag
  In favor of USE_CXX17 = "yes" and removes -w flag where this fix is
  known to work on Windows.
fix(clear): Removes everything because there was some information from
  random effects that was not being cleared leading to crashes. Many
  functions in the C++ code were also changed to CamelCase such as Clear().
  Refactored function names to match style of other member functions.
  clear() procedure creates a new instance of the information singleton object.
fix: Removes log_sigma_recruit from the Beverton--Holt
  stock--recruitment interface because it is now a part of the
  distribution associated with log_devs
fix(logging): Uses macros
  * Removes old logging
  * pretty format for output
  * added format string for json
  * created a logging vignette
  * Adds information about DFIMS_DEBUG information
  * Adds throw on error
fix: Collapses methods using S4 Group Generic Functions
fix: Defines methods for Ops, Math, and Summary
fix: Updates parameter min/max default values

refactor(model.hpp): Loops over all density modules to sum up joint
  negative log-likelihoods
refactor: Adds i=0 in for loops because R CMD check was complaining
  about significant warnings in compiling the c++ code because i was not
  initialized.
refactor(information): Improves readability
refactor: Uses C++ 17
refactor: Renames SIMULATE_F to FIMS_SIMULATE_F
refactor: Renames REPORT_F to FIMS_REPORT_F

GitHub ----

chore: change actions/checkout@v3 to v4

feat: Adds call-spell-check.yml from {ghactions4r} to spellcheck with WORDLIST

fix: Adds .json to .gitignore
fix: Adds .vscode to .gitignore
fix: Removes parallel tests because they were not helpful
fix: revert sim_num to 100 to simulate 100 sets of test data
  (see tests/testthat/fixtures/simulate-integration-test-data.R)

TODO: ----

* Remove code for processR in tests
* Find TODO statements in documentation and add the documentation
* think about renaming some of the Rcpp functions
* cli_* needs to be implemented throughout the package
* fix(fims-demo): Does not use returned object from fit_fims for plots
* no metadata object found to revise superClass error with sdreport class
* Add a standalone test (CI-only) for checking the speed of parallel runs
* fix parallel tests to avoid comparing run time with serial execution

Co-authored-by: Andrea-Havron-NOAA <[email protected]>
Co-authored-by: Bai-Li-NOAA <[email protected]>
Co-authored-by: ChristineStawitz-NOAA <[email protected]>
Co-authored-by: cmlegault <[email protected]>
Co-authored-by: Cole-Monnahan-NOAA <[email protected]>
Co-authored-by: JaneSullivan-NOAA <[email protected]>
Co-authored-by: iantaylor-NOAA <[email protected]>
Co-authored-by: k-doering-NOAA <[email protected]>
Co-authored-by: kellijohnson-NOAA <[email protected]>
Co-authored-by: KyleShertzer-NOAA <[email protected]>
Co-authored-by: msupernaw <[email protected]>
Co-authored-by: nathanvaughan-NOAA <[email protected]>
Co-authored-by: rklasky <[email protected]>

Part of #170: refactor distributions_base
Part of #388
Part of #573: add normal_lpdf
Part of #581: add lognormal_lpdf
Part of #585: add multinomial_lpmf
Part of #586
Part of #630
Part of #644
Part of #645
Part of #646
Part of #662
Part of #671
Part of #695
Part of #702
Close #672
Close #690
kellijohnson-NOAA pushed a commit that referenced this issue Jan 2, 2025
* Fits to length data using an age-to-length-conversion matrix, `data1`
  includes the necessary information needed to fit to both ages and lengths.
* Adds C++ ParameterVector to allow for the estimation of time-varying
  parameters.
* Implements R wrapper functions to facilitate
  * creating the input model specifications with `create_default_*()`,
    `update_parameters()`, and `initialize_*()`;
  * adding -999 to the missing fleet, year, age, length, etc. combinations;
  * running the model with a user-supplied argument of n_of_loops, where the
    default is three, to restart the optimizer from the previous run of nlmimb;
  * summarizing the output with the `FIMSFit()` function and class.
* Implements a switch for global verbosity within FIMS through the use
  of {cli} messages and warnings.
* Updates the logging system complete with a vignette about how to use it, the
  logging system can be used for both R and C++ errors, warnings, and
  information.
* Creates the initial infrastructure to implement random effects with density
  functions.
* Implements a helper function to get the parameter names from the
  C++ code and populate the results with those names.
* Makes lpdf_vec return 0 if data is missing.

R ----

doc(FIMSFrame): Adds documentation to accessors and increased consistency
doc(ParameterVector): Adds time-varying example to the vignette that is
  turned off by default but users can experiment
doc(fims-demo): Adds example of a model that is built but not fit
doc: Shares argument documentation across functions

feat(create_default_*()): Creates default values for FIMS parameters
feat(update_parameters()): Updates default values for FIMS parameters
feat(initialize_*()): Uses methods::new() to set up FIMS modules
feat(FIMSFit): Created FIMSFit as an S4 Class with [create_FIMSFit()]
  so people can also create a FIMSFit object without having to use
  [fit_fims()] and so the object returned by [fit_fims()] looks the
  same no matter if you want the uncertainty calculated or not via
  `get_sd`. Objects are not added to things to obj, opt, and report and
  instead they are explicitly returned as a slot in the S4 FIMSFit class
feat(estimates): In FIMSFit
feat(verbose): Uses cli_inform cli_abort. Users can now set the global
  verbose level through `options(rlib_message_verbosity = "quiet")` to stop
  cli::cli_inform() messages from coming through. This allows for the
  verbose argument to be removed from all functions. And,
  [is_fims_verbose()] can check internally in functions to see if FIMS
  is currently verbose.

fix(data1): Renamed from data_mile1 and adds length data
fix(fims-demo): Updates vignette doi Bai et al.
fix(FIMSFrame): Allows for subsetting of multiple fleets with %in%
fix(plot.FIMSFrame): Adds y and ... for plot to be properly documented
  where previously we only had x, which led to scales not being seen as a
  package that was needed. The methods proposed in #672 was a work around
  where this commit fixes the problem.
  fix(Rcpp_Parameter*): Moves to zzz.R because when in operators it was
  leading to warnings when compiling in R. The movement allows this file
  to be ran before the others and it does not matter if Rcpp_Parameter or
  Rcpp_ParameterVector is exported/defined. I also worked on the
  formatting of those functions as well as combining the documentation
  rather for similar, i.e., methods.

refactor(cli): Updates error message to use cli formatting
refactor(DESCRIPTION): Adds packages
  * Adds purrr, tidyr, tibble, stats
  * Removes tidyverse
  * Depends on R 4.1.0 because of the use of the native pipe, which is
    available in R version 4.1.0. Status-quo dependency was R 4.0.
refactor(tests): convert tests to testthat format in
  test-unit-rcpp-interface-variable-vector.R

C++ ----

doc: Remove authors, email from file headers, some cleanup to cpp file
  header with consistent use of @file, @brief, @details, and @copyright
  for every file in inst/include and notes.
doc(mainpage): Adds mainpage for doxygen as discussed by the
documentation group led by @Bai-Li-NOAA in July (notes [here](
  https://docs.google.com/document/d/1tPCSSanZ7SHaSE5SMkPoYrZh_lsswe7o5gtEyJmA0DU/edit?tab=t.0#heading=h.enmw68u5r5hm)).
doc(Parameter): Fully documents Parameter and ParameterVector matching
  documentation at the function definition with what is shown in Rcpp
  methods::show() inside R.
doc(pos): Uses pos in position for time-varying so it does not seem like
  things can only vary with time.

feat: add variable_map infrastructure
  * adds variable map as an object in information.hpp
  * adds std::vector<uint32_t> key to density_components_base
  * adds unique ID to VariableVector class and get_id function
  * resizes key and pass to densities in rcpp_distributions
feat: Uses .estimated_m and .is_random_effect_m in interface
feat(get_force_scalar): method in fims::Vector to return the first index
  if the vector is size one.
feat(get_parameter_names): Gets parameter names from C++

fix: Sets unique key for all tracked parameter/derived value in Rcpp objects
fix(information): add data error checks in information
fix(rcpp_interface): add get and set id functions to fleet interface
fix(multinomial_lpmf.hpp): make lpdf_vec to return 0 if data is missing
fix(Parameter): Removes estimated_m
fix(Makevars): Removes c++17 flag
  In favor of USE_CXX17 = "yes" and removes -w flag where this fix is
  known to work on Windows.
fix(clear): Removes everything because there was some information from
  random effects that was not being cleared leading to crashes. Many
  functions in the C++ code were also changed to CamelCase such as Clear().
  Refactored function names to match style of other member functions.
  clear() procedure creates a new instance of the information singleton object.
fix: Removes log_sigma_recruit from the Beverton--Holt
  stock--recruitment interface because it is now a part of the
  distribution associated with log_devs
fix(logging): Uses macros
  * Removes old logging
  * pretty format for output
  * added format string for json
  * created a logging vignette
  * Adds information about DFIMS_DEBUG information
  * Adds throw on error
fix: Collapses methods using S4 Group Generic Functions
fix: Defines methods for Ops, Math, and Summary
fix: Updates parameter min/max default values

refactor(model.hpp): Loops over all density modules to sum up joint
  negative log-likelihoods
refactor: Adds i=0 in for loops because R CMD check was complaining
  about significant warnings in compiling the c++ code because i was not
  initialized.
refactor(information): Improves readability
refactor: Uses C++ 17
refactor: Renames SIMULATE_F to FIMS_SIMULATE_F
refactor: Renames REPORT_F to FIMS_REPORT_F

GitHub ----

chore: change actions/checkout@v3 to v4

feat: Adds call-spell-check.yml from {ghactions4r} to spellcheck with WORDLIST

fix: Adds .json to .gitignore
fix: Adds .vscode to .gitignore
fix: Removes parallel tests because they were not helpful
fix: revert sim_num to 100 to simulate 100 sets of test data
  (see tests/testthat/fixtures/simulate-integration-test-data.R)

TODO: ----

* Remove code for processR in tests
* Find TODO statements in documentation and add the documentation
* think about renaming some of the Rcpp functions
* cli_* needs to be implemented throughout the package
* fix(fims-demo): Does not use returned object from fit_fims for plots
* no metadata object found to revise superClass error with sdreport class
* Add a standalone test (CI-only) for checking the speed of parallel runs
* fix parallel tests to avoid comparing run time with serial execution

Co-authored-by: Andrea-Havron-NOAA <[email protected]>
Co-authored-by: Bai-Li-NOAA <[email protected]>
Co-authored-by: ChristineStawitz-NOAA <[email protected]>
Co-authored-by: cmlegault <[email protected]>
Co-authored-by: Cole-Monnahan-NOAA <[email protected]>
Co-authored-by: JaneSullivan-NOAA <[email protected]>
Co-authored-by: iantaylor-NOAA <[email protected]>
Co-authored-by: k-doering-NOAA <[email protected]>
Co-authored-by: kellijohnson-NOAA <[email protected]>
Co-authored-by: KyleShertzer-NOAA <[email protected]>
Co-authored-by: msupernaw <[email protected]>
Co-authored-by: nathanvaughan-NOAA <[email protected]>
Co-authored-by: rklasky <[email protected]>

Part of #170: refactor distributions_base
Part of #388
Part of #573: add normal_lpdf
Part of #581: add lognormal_lpdf
Part of #585: add multinomial_lpmf
Part of #586
Part of #630
Part of #644
Part of #645
Part of #646
Part of #662
Part of #671
Part of #695
Part of #702
Close #672
Close #690
kellijohnson-NOAA pushed a commit that referenced this issue Jan 2, 2025
* Fits to length data using an age-to-length-conversion matrix, `data1`
  includes the necessary information needed to fit to both ages and lengths.
* Adds C++ ParameterVector to allow for the estimation of time-varying
  parameters.
* Implements R wrapper functions to facilitate
  * creating the input model specifications with `create_default_*()`,
    `update_parameters()`, and `initialize_*()`;
  * adding -999 to the missing fleet, year, age, length, etc. combinations;
  * running the model with a user-supplied argument of n_of_loops, where the
    default is three, to restart the optimizer from the previous run of nlmimb;
  * summarizing the output with the `FIMSFit()` function and class.
* Implements a switch for global verbosity within FIMS through the use
  of {cli} messages and warnings.
* Updates the logging system complete with a vignette about how to use it, the
  logging system can be used for both R and C++ errors, warnings, and
  information.
* Creates the initial infrastructure to implement random effects with density
  functions.
* Implements a helper function to get the parameter names from the
  C++ code and populate the results with those names.
* Makes lpdf_vec return 0 if data is missing.

R ----

doc(FIMSFrame): Adds documentation to accessors and increased consistency
doc(ParameterVector): Adds time-varying example to the vignette that is
  turned off by default but users can experiment
doc(fims-demo): Adds example of a model that is built but not fit
doc: Shares argument documentation across functions

feat(create_default_*()): Creates default values for FIMS parameters
feat(update_parameters()): Updates default values for FIMS parameters
feat(initialize_*()): Uses methods::new() to set up FIMS modules
feat(FIMSFit): Created FIMSFit as an S4 Class with [create_FIMSFit()]
  so people can also create a FIMSFit object without having to use
  [fit_fims()] and so the object returned by [fit_fims()] looks the
  same no matter if you want the uncertainty calculated or not via
  `get_sd`. Objects are not added to things to obj, opt, and report and
  instead they are explicitly returned as a slot in the S4 FIMSFit class
feat(estimates): In FIMSFit
feat(verbose): Uses cli_inform cli_abort. Users can now set the global
  verbose level through `options(rlib_message_verbosity = "quiet")` to stop
  cli::cli_inform() messages from coming through. This allows for the
  verbose argument to be removed from all functions. And,
  [is_fims_verbose()] can check internally in functions to see if FIMS
  is currently verbose.

fix(data1): Renamed from data_mile1 and adds length data
fix(fims-demo): Updates vignette doi Bai et al.
fix(FIMSFrame): Allows for subsetting of multiple fleets with %in%
fix(plot.FIMSFrame): Adds y and ... for plot to be properly documented
  where previously we only had x, which led to scales not being seen as a
  package that was needed. The methods proposed in #672 was a work around
  where this commit fixes the problem.
  fix(Rcpp_Parameter*): Moves to zzz.R because when in operators it was
  leading to warnings when compiling in R. The movement allows this file
  to be ran before the others and it does not matter if Rcpp_Parameter or
  Rcpp_ParameterVector is exported/defined. I also worked on the
  formatting of those functions as well as combining the documentation
  rather for similar, i.e., methods.

refactor(cli): Updates error message to use cli formatting
refactor(DESCRIPTION): Adds packages
  * Adds purrr, tidyr, tibble, stats
  * Removes tidyverse
  * Depends on R 4.1.0 because of the use of the native pipe, which is
    available in R version 4.1.0. Status-quo dependency was R 4.0.
refactor(tests): convert tests to testthat format in
  test-unit-rcpp-interface-variable-vector.R

C++ ----

doc: Remove authors, email from file headers, some cleanup to cpp file
  header with consistent use of @file, @brief, @details, and @copyright
  for every file in inst/include and notes.
doc(mainpage): Adds mainpage for doxygen as discussed by the
documentation group led by @Bai-Li-NOAA in July (notes [here](
  https://docs.google.com/document/d/1tPCSSanZ7SHaSE5SMkPoYrZh_lsswe7o5gtEyJmA0DU/edit?tab=t.0#heading=h.enmw68u5r5hm)).
doc(Parameter): Fully documents Parameter and ParameterVector matching
  documentation at the function definition with what is shown in Rcpp
  methods::show() inside R.
doc(pos): Uses pos in position for time-varying so it does not seem like
  things can only vary with time.

feat: add variable_map infrastructure
  * adds variable map as an object in information.hpp
  * adds std::vector<uint32_t> key to density_components_base
  * adds unique ID to VariableVector class and get_id function
  * resizes key and pass to densities in rcpp_distributions
feat: Uses .estimated_m and .is_random_effect_m in interface
feat(get_force_scalar): method in fims::Vector to return the first index
  if the vector is size one.
feat(get_parameter_names): Gets parameter names from C++

fix: Sets unique key for all tracked parameter/derived value in Rcpp objects
fix(information): add data error checks in information
fix(rcpp_interface): add get and set id functions to fleet interface
fix(multinomial_lpmf.hpp): make lpdf_vec to return 0 if data is missing
fix(Parameter): Removes estimated_m
fix(Makevars): Removes c++17 flag
  In favor of USE_CXX17 = "yes" and removes -w flag where this fix is
  known to work on Windows.
fix(clear): Removes everything because there was some information from
  random effects that was not being cleared leading to crashes. Many
  functions in the C++ code were also changed to CamelCase such as Clear().
  Refactored function names to match style of other member functions.
  clear() procedure creates a new instance of the information singleton object.
fix: Removes log_sigma_recruit from the Beverton--Holt
  stock--recruitment interface because it is now a part of the
  distribution associated with log_devs
fix(logging): Uses macros
  * Removes old logging
  * pretty format for output
  * added format string for json
  * created a logging vignette
  * Adds information about DFIMS_DEBUG information
  * Adds throw on error
fix: Collapses methods using S4 Group Generic Functions
fix: Defines methods for Ops, Math, and Summary
fix: Updates parameter min/max default values

refactor(model.hpp): Loops over all density modules to sum up joint
  negative log-likelihoods
refactor: Adds i=0 in for loops because R CMD check was complaining
  about significant warnings in compiling the c++ code because i was not
  initialized.
refactor(information): Improves readability
refactor: Uses C++ 17
refactor: Renames SIMULATE_F to FIMS_SIMULATE_F
refactor: Renames REPORT_F to FIMS_REPORT_F

GitHub ----

chore: change actions/checkout@v3 to v4

feat: Adds call-spell-check.yml from {ghactions4r} to spellcheck with WORDLIST

fix: Adds .json to .gitignore
fix: Adds .vscode to .gitignore
fix: Removes parallel tests because they were not helpful
fix: revert sim_num to 100 to simulate 100 sets of test data
  (see tests/testthat/fixtures/simulate-integration-test-data.R)

TODO: ----

* Remove code for processR in tests
* Find TODO statements in documentation and add the documentation
* think about renaming some of the Rcpp functions
* cli_* needs to be implemented throughout the package
* fix(fims-demo): Does not use returned object from fit_fims for plots
* no metadata object found to revise superClass error with sdreport class
* Add a standalone test (CI-only) for checking the speed of parallel runs
* fix parallel tests to avoid comparing run time with serial execution

Co-authored-by: Andrea-Havron-NOAA <[email protected]>
Co-authored-by: Bai-Li-NOAA <[email protected]>
Co-authored-by: ChristineStawitz-NOAA <[email protected]>
Co-authored-by: cmlegault <[email protected]>
Co-authored-by: Cole-Monnahan-NOAA <[email protected]>
Co-authored-by: JaneSullivan-NOAA <[email protected]>
Co-authored-by: iantaylor-NOAA <[email protected]>
Co-authored-by: k-doering-NOAA <[email protected]>
Co-authored-by: kellijohnson-NOAA <[email protected]>
Co-authored-by: KyleShertzer-NOAA <[email protected]>
Co-authored-by: msupernaw <[email protected]>
Co-authored-by: nathanvaughan-NOAA <[email protected]>
Co-authored-by: rklasky <[email protected]>

Part of #170: refactor distributions_base
Part of #388
Part of #573: add normal_lpdf
Part of #581: add lognormal_lpdf
Part of #585: add multinomial_lpmf
Part of #586
Part of #630
Part of #644
Part of #645
Part of #646
Part of #662
Part of #671
Part of #695
Part of #702
Close #672
Close #690
kellijohnson-NOAA pushed a commit that referenced this issue Jan 3, 2025
* Fits to length data using an age-to-length-conversion matrix, `data1`
  includes the necessary information needed to fit to both ages and lengths.
* Adds C++ ParameterVector to allow for the estimation of time-varying
  parameters.
* Implements R wrapper functions to facilitate
  * creating the input model specifications with `create_default_*()`,
    `update_parameters()`, and `initialize_*()`;
  * adding -999 to the missing fleet, year, age, length, etc. combinations;
  * running the model with a user-supplied argument of n_of_loops, where the
    default is three, to restart the optimizer from the previous run of nlmimb;
  * summarizing the output with the `FIMSFit()` function and class.
* Implements a switch for global verbosity within FIMS through the use
  of {cli} messages and warnings.
* Updates the logging system complete with a vignette about how to use it, the
  logging system can be used for both R and C++ errors, warnings, and
  information.
* Creates the initial infrastructure to implement random effects with density
  functions.
* Implements a helper function to get the parameter names from the
  C++ code and populate the results with those names.
* Makes lpdf_vec return 0 if data is missing.

R ----

doc(FIMSFrame): Adds documentation to accessors and increased consistency
doc(ParameterVector): Adds time-varying example to the vignette that is
  turned off by default but users can experiment
doc(fims-demo): Adds example of a model that is built but not fit
doc: Shares argument documentation across functions

feat(create_default_*()): Creates default values for FIMS parameters
feat(update_parameters()): Updates default values for FIMS parameters
feat(initialize_*()): Uses methods::new() to set up FIMS modules
feat(FIMSFit): Created FIMSFit as an S4 Class with [create_FIMSFit()]
  so people can also create a FIMSFit object without having to use
  [fit_fims()] and so the object returned by [fit_fims()] looks the
  same no matter if you want the uncertainty calculated or not via
  `get_sd`. Objects are not added to things to obj, opt, and report and
  instead they are explicitly returned as a slot in the S4 FIMSFit class
feat(estimates): In FIMSFit
feat(verbose): Uses cli_inform cli_abort. Users can now set the global
  verbose level through `options(rlib_message_verbosity = "quiet")` to stop
  cli::cli_inform() messages from coming through. This allows for the
  verbose argument to be removed from all functions. And,
  [is_fims_verbose()] can check internally in functions to see if FIMS
  is currently verbose.

fix(data1): Renamed from data_mile1 and adds length data
fix(fims-demo): Updates vignette doi Bai et al.
fix(FIMSFrame): Allows for subsetting of multiple fleets with %in%
fix(plot.FIMSFrame): Adds y and ... for plot to be properly documented
  where previously we only had x, which led to scales not being seen as a
  package that was needed. The methods proposed in #672 was a work around
  where this commit fixes the problem.
  fix(Rcpp_Parameter*): Moves to zzz.R because when in operators it was
  leading to warnings when compiling in R. The movement allows this file
  to be ran before the others and it does not matter if Rcpp_Parameter or
  Rcpp_ParameterVector is exported/defined. I also worked on the
  formatting of those functions as well as combining the documentation
  rather for similar, i.e., methods.

refactor(cli): Updates error message to use cli formatting
refactor(DESCRIPTION): Adds packages
  * Adds purrr, tidyr, tibble, stats
  * Removes tidyverse
  * Depends on R 4.1.0 because of the use of the native pipe, which is
    available in R version 4.1.0. Status-quo dependency was R 4.0.
refactor(tests): convert tests to testthat format in
  test-unit-rcpp-interface-variable-vector.R

C++ ----

doc: Remove authors, email from file headers, some cleanup to cpp file
  header with consistent use of @file, @brief, @details, and @copyright
  for every file in inst/include and notes.
doc(mainpage): Adds mainpage for doxygen as discussed by the
documentation group led by @Bai-Li-NOAA in July (notes [here](
  https://docs.google.com/document/d/1tPCSSanZ7SHaSE5SMkPoYrZh_lsswe7o5gtEyJmA0DU/edit?tab=t.0#heading=h.enmw68u5r5hm)).
doc(Parameter): Fully documents Parameter and ParameterVector matching
  documentation at the function definition with what is shown in Rcpp
  methods::show() inside R.
doc(pos): Uses pos in position for time-varying so it does not seem like
  things can only vary with time.

feat: add variable_map infrastructure
  * adds variable map as an object in information.hpp
  * adds std::vector<uint32_t> key to density_components_base
  * adds unique ID to VariableVector class and get_id function
  * resizes key and pass to densities in rcpp_distributions
feat: Uses .estimated_m and .is_random_effect_m in interface
feat(get_force_scalar): method in fims::Vector to return the first index
  if the vector is size one.
feat(get_parameter_names): Gets parameter names from C++

fix: Sets unique key for all tracked parameter/derived value in Rcpp objects
fix(information): add data error checks in information
fix(rcpp_interface): add get and set id functions to fleet interface
fix(multinomial_lpmf.hpp): make lpdf_vec to return 0 if data is missing
fix(Parameter): Removes estimated_m
fix(Makevars): Removes c++17 flag
  In favor of USE_CXX17 = "yes" and removes -w flag where this fix is
  known to work on Windows.
fix(clear): Removes everything because there was some information from
  random effects that was not being cleared leading to crashes. Many
  functions in the C++ code were also changed to CamelCase such as Clear().
  Refactored function names to match style of other member functions.
  clear() procedure creates a new instance of the information singleton object.
fix: Removes log_sigma_recruit from the Beverton--Holt
  stock--recruitment interface because it is now a part of the
  distribution associated with log_devs
fix(logging): Uses macros
  * Removes old logging
  * pretty format for output
  * added format string for json
  * created a logging vignette
  * Adds information about DFIMS_DEBUG information
  * Adds throw on error
fix: Collapses methods using S4 Group Generic Functions
fix: Defines methods for Ops, Math, and Summary
fix: Updates parameter min/max default values

refactor(model.hpp): Loops over all density modules to sum up joint
  negative log-likelihoods
refactor: Adds i=0 in for loops because R CMD check was complaining
  about significant warnings in compiling the c++ code because i was not
  initialized.
refactor(information): Improves readability
refactor: Uses C++ 17
refactor: Renames SIMULATE_F to FIMS_SIMULATE_F
refactor: Renames REPORT_F to FIMS_REPORT_F

GitHub ----

chore: change actions/checkout@v3 to v4

feat: Adds call-spell-check.yml from {ghactions4r} to spellcheck with WORDLIST

fix: Adds .json to .gitignore
fix: Adds .vscode to .gitignore
fix: Removes parallel tests because they were not helpful
fix: revert sim_num to 100 to simulate 100 sets of test data
  (see tests/testthat/fixtures/simulate-integration-test-data.R)

TODO: ----

* Remove code for processR in tests
* Find TODO statements in documentation and add the documentation
* think about renaming some of the Rcpp functions
* cli_* needs to be implemented throughout the package
* fix(fims-demo): Does not use returned object from fit_fims for plots
* no metadata object found to revise superClass error with sdreport class
* Add a standalone test (CI-only) for checking the speed of parallel runs
* fix parallel tests to avoid comparing run time with serial execution

Co-authored-by: Andrea-Havron-NOAA <[email protected]>
Co-authored-by: Bai-Li-NOAA <[email protected]>
Co-authored-by: ChristineStawitz-NOAA <[email protected]>
Co-authored-by: cmlegault <[email protected]>
Co-authored-by: Cole-Monnahan-NOAA <[email protected]>
Co-authored-by: JaneSullivan-NOAA <[email protected]>
Co-authored-by: iantaylor-NOAA <[email protected]>
Co-authored-by: k-doering-NOAA <[email protected]>
Co-authored-by: kellijohnson-NOAA <[email protected]>
Co-authored-by: KyleShertzer-NOAA <[email protected]>
Co-authored-by: msupernaw <[email protected]>
Co-authored-by: nathanvaughan-NOAA <[email protected]>
Co-authored-by: rklasky <[email protected]>

Part of #170: refactor distributions_base
Part of #388
Part of #573: add normal_lpdf
Part of #581: add lognormal_lpdf
Part of #585: add multinomial_lpmf
Part of #586
Part of #630
Part of #644
Part of #645
Part of #646
Part of #662
Part of #671
Part of #695
Part of #702
Close #672
Close #690
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: refactor Restructure code to improve the implementation of FIMS P3 low priority task theme: code cleanup
Projects
None yet
Development

No branches or pull requests

3 participants