Pages

Showing posts with label c#. Show all posts
Showing posts with label c#. Show all posts

Thursday, August 30, 2012

I 'm Not Dead Yet

...I can dance and I can sing! I am not dead yet; I can do the Highland Fling (well, not really)! No need to go to bed! No need to call the doctor 'cause I'm not yet dead!

...Sorry. Now then, on to blog business.
You may not know what I did this summer, but soon you will.

Monday, December 26, 2011

Imaginary Number Module

What follows is a simple bit of C# code for handling complex numbers. This was developed for a quantum mechanics engine I'm developing.
namespace ImaginaryNumber
{
    /// <summary>
    /// A class for handling complex numbers.
    /// Author: James Yakura/sidhe3141
    /// </summary>
    public class ComplexNumber
    {
        /// <summary>
        /// The real part of the number.
        /// </summary>
        int real_part;
        /// <summary>
        /// The imaginary part of the number.
        /// </summary>
        int imaginary_part;
        /// <summary>
        /// Creates a new complex number.
        /// </summary>
        /// <param name="real">The real part.</param>
        /// <param name="imaginary">The imaginary part.</param>
        public ComplexNumber(int real, int imaginary)
        {
            real_part = real;
            imaginary_part = imaginary;
        }
        /// <summary>
        /// Multiplies by a real number.
        /// </summary>
        /// <param name="mult">The number to multiply by.</param>
        /// <returns>The product of the two numbers.</returns>
        public ComplexNumber MultiplyBy(int mult)
        {
            int temp_real = real_part * mult;
            int temp_img = imaginary_part * mult;
            return new ComplexNumber(temp_real, temp_img);
        }
        /// <summary>
        /// Multiplies by a complex number.
        /// </summary>
        /// <param name="mult">The number to multiply by.</param>
        /// <returns>The product of the two numbers.</returns>
        public ComplexNumber MultiplyBy(ComplexNumber mult)
        {
            int temp_real = real_part * mult.real_part - imaginary_part * mult.imaginary_part;
            int temp_img = real_part * mult.imaginary_part + imaginary_part * mult.real_part;
            return new ComplexNumber(temp_real, temp_img);
        }
        /// <summary>
        /// Adds two complex numbers.
        /// </summary>
        /// <param name="add">The number to add.</param>
        /// <returns>The sum of the two numbers.</returns>
        public ComplexNumber AddTo(ComplexNumber add)
        {
            int temp_real = real_part + add.real_part;
            int temp_img = imaginary_part + add.imaginary_part;
            return new ComplexNumber(temp_real, temp_img);
        }
        /// <summary>
        /// Converts a real number to complex form.
        /// </summary>
        /// <param name="input">The number to be converted.</param>
        /// <returns>The complex form.</returns>
        public static ComplexNumber ComplexConversion(int input)
        {
            return new ComplexNumber(input, 0);
        }
        /// <summary>
        /// Gets and sets the real part of the number.
        /// </summary>
        public int RealPart
        {
            get
            {
                return real_part;
            }
            set
            {
                real_part = value;
            }
        }
        /// <summary>
        /// Gets and sets the coefficient of the imaginary part of the number.
        /// </summary>
        public int ImaginaryPart
        {
            get
            {
                return imaginary_part;
            }
            set
            {
                imaginary_part = value;
            }
        }
    }
}