rendered paste bodyusing System;
using System.Collections.Generic;
using System.Text;
namespace Buddhabrot
{
public class Complex
{
private double _real;
public double real
{
get { return _real; }
set { _real = value; }
}
private double _imaginary;
public double imaginary
{
get { return _imaginary; }
set { _imaginary = value; }
}
public Complex conjugate
{
get { return new Complex(real, Math.Abs(_imaginary)); }
}
public double absoluteValue
{
get { return magnitude; }
}
public double magnitude
{
get { return Math.Sqrt(this.square); }
}
private double square
{
get { return (_real * _real) + (_imaginary * _imaginary); }
}
public double length
{
get { return magnitude; }
}
public double theta
{
get { return Math.Tan(_imaginary / _real); }
}
public Complex clone
{
get { return new Complex(_real, _imaginary); }
}
public Complex(double nReal, double nImaginary)
{
_real = nReal;
_imaginary = nImaginary;
}
public static Complex operator +(Complex c1, Complex c2)
{
return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
}
public static Complex operator -(Complex c1, Complex c2)
{
return new Complex(c1.real - c2.real, c1.imaginary - c2.imaginary);
}
public static Complex operator *(Complex c1, Complex c2)
{
return new Complex(c1.real * c2.real - c1.imaginary * c2.imaginary, c1.imaginary * c2.real + c1.real * c2.imaginary);
}
public static Complex operator /(Complex c1, Complex c2)
{
double denominator = c2.square;
Complex c3 = c1 * c2;
return new Complex(c3.real / denominator, c3.imaginary / denominator);
}
public override string ToString()
{
return (System.String.Format("{0} + {1}i", real, imaginary));
}
}
}