Start working on solving systems of eqns
This commit is contained in:
		
							parent
							
								
									8a33818790
								
							
						
					
					
						commit
						067f868222
					
				| @ -123,6 +123,22 @@ impl Unknowns for Eqns { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl fmt::Display for Eqns { | ||||
|     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { | ||||
|         write!(f, "{{ "); | ||||
|         let mut first = true; | ||||
|         for eq in &self.0 { | ||||
|             if first { | ||||
|                 first = false; | ||||
|             } else { | ||||
|                 write!(f, " && ")?; | ||||
|             } | ||||
|             write!(f, "{}", eq)? | ||||
|         } | ||||
|         write!(f, " }}") | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #[cfg(test)] | ||||
| mod tests { | ||||
|     use super::*; | ||||
| @ -155,7 +171,7 @@ mod tests { | ||||
|     } | ||||
| 
 | ||||
|     #[test] | ||||
|     fn test_solve() { | ||||
|     fn test_eqn_solve() { | ||||
|         use Expr::*; | ||||
|         let _ = env_logger::try_init(); | ||||
|         let u1 = Unknown(1); | ||||
| @ -232,4 +248,23 @@ mod tests { | ||||
|         assert!(relative_eq!(const_expr(e.clone()).unwrap(), -9.)); | ||||
|     } | ||||
| 
 | ||||
|     #[test] | ||||
|     fn test_eqns_solve() { | ||||
|        use Expr::*; | ||||
| 
 | ||||
|         let x = Unknown(1); | ||||
|         let y = Unknown(2); | ||||
|         let t1 = Unknown(3); | ||||
|         let t2 = Unknown(4); | ||||
| 
 | ||||
|         let eqns = Eqns(vec![ | ||||
|             Eqn::new(x.into(), t1 / 2.), | ||||
|             Eqn::new(y.into(), t1 / 2.), | ||||
|             Eqn::new(x.into(), Const(1.0) - t2 / 2.), | ||||
|             Eqn::new(y.into(), t2 / 2.), | ||||
|         ]); | ||||
|         println!("eqns: {}", eqns); | ||||
|         let sol = eqns.solve(&[t1, t2]).unwrap(); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user