@@ -618,8 +618,23 @@ impl CycleLog {
618
618
writer. write_field ( "cycle" ) ?;
619
619
writer. write_field ( "converged" ) ?;
620
620
writer. write_field ( "neg2ll" ) ?;
621
- //writer.write_field("gamlam")?;
622
621
writer. write_field ( "nspp" ) ?;
622
+ if let Some ( first_cycle) = self . cycles . first ( ) {
623
+ first_cycle. error_models . iter ( ) . try_for_each (
624
+ |( outeq, errmod) : ( usize , & ErrorModel ) | -> Result < ( ) , csv:: Error > {
625
+ match errmod {
626
+ ErrorModel :: Additive { .. } => {
627
+ writer. write_field ( format ! ( "gamlam.{}" , outeq) ) ?;
628
+ }
629
+ ErrorModel :: Proportional { .. } => {
630
+ writer. write_field ( format ! ( "gamlam.{}" , outeq) ) ?;
631
+ }
632
+ ErrorModel :: None { .. } => { }
633
+ }
634
+ Ok ( ( ) )
635
+ } ,
636
+ ) ?;
637
+ }
623
638
624
639
let parameter_names = settings. parameters ( ) . names ( ) ;
625
640
for param_name in & parameter_names {
@@ -634,11 +649,26 @@ impl CycleLog {
634
649
writer. write_field ( format ! ( "{}" , cycle. cycle) ) ?;
635
650
writer. write_field ( format ! ( "{}" , cycle. converged) ) ?;
636
651
writer. write_field ( format ! ( "{}" , cycle. objf) ) ?;
637
- // writer.write_field(format!("{}", cycle.gamlam))?;
638
652
writer
639
- . write_field ( format ! ( "{}" , cycle. theta. matrix ( ) . nrows ( ) ) )
653
+ . write_field ( format ! ( "{}" , cycle. theta. nspp ( ) ) )
640
654
. unwrap ( ) ;
641
655
656
+ // Write the error models
657
+ cycle. error_models . iter ( ) . try_for_each (
658
+ |( _, errmod) : ( usize , & ErrorModel ) | -> Result < ( ) > {
659
+ match errmod {
660
+ ErrorModel :: Additive { .. } => {
661
+ writer. write_field ( format ! ( "{:.5}" , errmod. scalar( ) ?) ) ?;
662
+ }
663
+ ErrorModel :: Proportional { .. } => {
664
+ writer. write_field ( format ! ( "{:.5}" , errmod. scalar( ) ?) ) ?;
665
+ }
666
+ ErrorModel :: None { .. } => { }
667
+ }
668
+ Ok ( ( ) )
669
+ } ,
670
+ ) ?;
671
+
642
672
for param in cycle. theta . matrix ( ) . col_iter ( ) {
643
673
let param_values: Vec < f64 > = param. iter ( ) . cloned ( ) . collect ( ) ;
644
674
0 commit comments