# HG changeset patch
# User Tuomo Valkonen <tuomov@iki.fi>
# Date 1735432281 18000
# Node ID 1afca417d71bf592b97004a0b6691c76df51f4c4
# Parent  34f8ec6363684a9a835148876cdae03c9fdcfc18
Further alg_tools updates

diff -r 34f8ec636368 -r 1afca417d71b Cargo.lock
--- a/Cargo.lock	Thu Dec 19 15:55:32 2024 -0500
+++ b/Cargo.lock	Sat Dec 28 19:31:21 2024 -0500
@@ -21,6 +21,7 @@
 name = "alg_tools"
 version = "0.3.0-dev"
 dependencies = [
+ "anyhow",
  "colored",
  "cpu-time",
  "csv",
@@ -43,9 +44,9 @@
 
 [[package]]
 name = "anyhow"
-version = "1.0.94"
+version = "1.0.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7"
+checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04"
 
 [[package]]
 name = "approx"
diff -r 34f8ec636368 -r 1afca417d71b src/fb.rs
--- a/src/fb.rs	Thu Dec 19 15:55:32 2024 -0500
+++ b/src/fb.rs	Sat Dec 28 19:31:21 2024 -0500
@@ -3,9 +3,10 @@
 */
 
 use alg_tools::iterate::{AlgIteratorFactory, LogRepr};
-use alg_tools::mapping::{Mapping, Sum};
+use alg_tools::mapping::Mapping;
+use alg_tools::operator_arithmetic::MappingSum;
 use serde::Serialize;
-use std::iter::Sum as SumTrait;
+use std::iter::Sum;
 use colored::ColoredString;
 use crate::manifold::{EmbeddedManifoldPoint, ManifoldPoint};
 
@@ -27,10 +28,10 @@
      }
 }*/
 
-impl<M, T > Desc<M> for Sum<M, T>
+impl<M, T> Desc<M> for MappingSum<T>
 where M : ManifoldPoint,
       T : Grad<M> + Mapping<M, Codomain=f64>,
-      M::Tangent : SumTrait {
+      M::Tangent : Sum {
     fn desc(&self, τ : f64, x : M) -> M {
         let t : M::Tangent = self.iter()
                                  .map(|f| f.grad(&x))
diff -r 34f8ec636368 -r 1afca417d71b src/main.rs
--- a/src/main.rs	Thu Dec 19 15:55:32 2024 -0500
+++ b/src/main.rs	Sat Dec 28 19:31:21 2024 -0500
@@ -23,7 +23,8 @@
 use alg_tools::lingrid::LinSpace;
 use alg_tools::loc::Loc;
 use alg_tools::types::*;
-use alg_tools::mapping::{Sum, Mapping};
+use alg_tools::mapping::Mapping;
+use alg_tools::operator_arithmetic::MappingSum;
 use alg_tools::iterate::{AlgIteratorOptions, AlgIteratorFactory, Verbose};
 use image::{ImageFormat, ImageBuffer, Rgb};
 
@@ -100,7 +101,7 @@
     write_csv(points.iter().map(CSVPoint::from), format!("{dir}/data.csv"))?;
     write_csv(std::iter::once(&origin).map(CSVPoint::from), format!("{dir}/origin.csv"))?;
 
-    let f = Sum::new(points.into_iter().map(DistToSquaredDiv2));
+    let f = MappingSum::new(points.into_iter().map(DistToSquaredDiv2));
     //let g = ZeroFn::new();
     let g = Scaled::new(0.5, DistTo(origin));
     let τ = 0.1;
@@ -165,7 +166,7 @@
     write_csv(points.iter().map(CSVCylPoint::from), format!("{dir}/data.csv"))?;
     write_csv(std::iter::once(&origin).map(CSVCylPoint::from), format!("{dir}/origin.csv"))?;
 
-    let f = Sum::new(points.into_iter().map(DistToSquaredDiv2));
+    let f = MappingSum::new(points.into_iter().map(DistToSquaredDiv2));
     let g = Scaled::new(4.0, DistTo(origin));
     let τ = 0.1;