PI * (3.f * (this.A + this.B) - sqrt ((3.f * this.A + this.B) * (this.A + 3.f * this.B)))
override this.ToString () =
- sprintf "{Ellipse: cx = %f, cy = %f, a = %f, b = %f, alpha = %f}" this.Cx this.Cy this.A this.B this.Alpha
+ $"{{Ellipse: cx = %f{this.Cx}, cy = %f{this.Cy}, a = %f{this.A}, b = %f{this.B}, alpha = %f{this.Alpha}}}"
+
+ override this.Equals (other : obj) =
+ match other with
+ | :? Ellipse as otherEllipse ->
+ otherEllipse.Cx = this.Cx &&
+ otherEllipse.Cy = this.Cy &&
+ otherEllipse.A = this.A &&
+ otherEllipse.B = this.B &&
+ otherEllipse.Alpha = this.Alpha
+ | _ -> false
+
+ override this.GetHashCode () = HashCode.Combine (this.Cx, this.Cy, this.A, this.B, this.Alpha)
[<Struct>]
type CellClass = HealthyRBC | InfectedRBC | Peculiar