<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -23,8 +23,8 @@
 // &lt;/copyright&gt;
 
 /* This file is automatically generated - do not modify it. 
-   Change NativeLinearAlgebraProvider instead.
-   Last generated on: 10/30/2009 3:38:53 PM
+   Change NativeLinearAlgebraProvider.include instead.
+   Last generated on: 11/4/2009 2:23:32 PM
 */
 namespace MathNet.Numerics.Algorithms.LinearAlgebra.Atlas
 {
@@ -243,7 +243,27 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Atlas
 
         public void AddVectorToScaledVector(float[] y, float alpha, float[] x)
         {
-            throw new NotImplementedException();
+            if (y == null)
+            {
+                throw new ArgumentNullException(&quot;y&quot;);
+            }
+
+            if (x == null)
+            {
+                throw new ArgumentNullException(&quot;x&quot;);
+            }
+
+            if (y.Length != x.Length)
+            {
+                throw new ArgumentException(Resources.ArgumentVectorsSameLength);
+            }
+
+            if (alpha == 0.0f)
+            {
+                return;
+            }
+
+            SafeNativeMethods.s_axpy(y.Length, alpha, x, y);
         }
 
         public void ScaleArray(float alpha, float[] x)
@@ -408,7 +428,27 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Atlas
 
         public void AddVectorToScaledVector(Complex[] y, Complex alpha, Complex[] x)
         {
-            throw new NotImplementedException();
+            if (y == null)
+            {
+                throw new ArgumentNullException(&quot;y&quot;);
+            }
+
+            if (x == null)
+            {
+                throw new ArgumentNullException(&quot;x&quot;);
+            }
+
+            if (y.Length != x.Length)
+            {
+                throw new ArgumentException(Resources.ArgumentVectorsSameLength);
+            }
+
+            if (alpha.IsZero)
+            {
+                return;
+            }
+
+            SafeNativeMethods.z_axpy(y.Length, ref alpha, x, y);
         }
 
         public void ScaleArray(Complex alpha, Complex[] x)
@@ -567,5 +607,189 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Atlas
         }
 
         #endregion
+        
+        #region ILinearAlgebraProvider&lt;Complex32&gt; Members
+
+        public void AddVectorToScaledVector(Complex32[] y, Complex32 alpha, Complex32[] x)
+        {
+            if (y == null)
+            {
+                throw new ArgumentNullException(&quot;y&quot;);
+            }
+
+            if (x == null)
+            {
+                throw new ArgumentNullException(&quot;x&quot;);
+            }
+
+            if (y.Length != x.Length)
+            {
+                throw new ArgumentException(Resources.ArgumentVectorsSameLength);
+            }
+
+            if (alpha.IsZero)
+            {
+                return;
+            }
+
+            SafeNativeMethods.c_axpy(y.Length, ref alpha, x, y);
+        }
+
+        public void ScaleArray(Complex32 alpha, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 DotProduct(Complex32[] x, Complex32[] y)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void AddArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SubtractArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void PointWiseMultiplyArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 MatrixNorm(Norm norm, Complex32[] matrix)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 MatrixNorm(Norm norm, Complex32[] matrix, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void MatrixMultiply(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void MatrixMultiplyWithUpdate(Transpose transposeA, Transpose transposeB, Complex32 alpha, Complex32[] a, Complex32[] b, Complex32 beta, Complex32[] c)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUFactor(Complex32[] a, int[] ipiv)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverse(Complex32[] a)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverseFactored(Complex32[] a, int[] ipiv)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverse(Complex32[] a, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverseFactored(Complex32[] a, int[] ipiv, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolve(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolveFactored(int columnsOfB, Complex32[] a, int ipiv, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolve(Transpose transposeA, int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolveFactored(Transpose transposeA, int columnsOfB, Complex32[] a, int ipiv, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskyFactor(Complex32[] a)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskySolve(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskySolveFactored(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRFactor(Complex32[] r, Complex32[] q)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRFactor(Complex32[] r, Complex32[] q, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolve(int columnsOfB, Complex32[] r, Complex32[] q, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolve(int columnsOfB, Complex32[] r, Complex32[] q, Complex32[] b, Complex32[] x, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolveFactored(int columnsOfB, Complex32[] q, Complex32[] r, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SinguarValueDecomposition(bool computeVectors, Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SingularValueDecomposition(bool computeVectors, Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolve(Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolve(Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolveFactored(int columnsOfB, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        #endregion
     }
 }
\ No newline at end of file</diff>
      <filename>src/Numerics/Algorithms/LinearAlgebra/Atlas/AtlasLinearAlgebraProvider.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,11 @@
 // OTHER DEALINGS IN THE SOFTWARE.
 // &lt;/copyright&gt;
 
+/* This file is automatically generated - do not modify it. 
+   Change SafeNativeMethods.include instead.
+   Last generated on: 11/4/2009 2:23:36 PM
+*/
+
 using System.Runtime.InteropServices;
 using System.Security;
 
@@ -44,8 +49,8 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Atlas
         [DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
         internal static extern void d_axpy(int n, double alpha, double[] x, [In, Out] double[] y);
 
-        //[DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
-        //internal static extern void c_axpy(int n, ref Complex32 alpha, Complex32[] x, [In, Out] Complex32[] y);
+        [DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
+        internal static extern void c_axpy(int n, ref Complex32 alpha, Complex32[] x, [In, Out] Complex32[] y);
 
         [DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
         internal static extern void z_axpy(int n, ref Complex alpha, Complex[] x, [In, Out] Complex[] y);</diff>
      <filename>src/Numerics/Algorithms/LinearAlgebra/Atlas/SafeNativeMethods.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra
     /// &lt;summary&gt;
     /// Interface to linear algebra algorithms that work off 1-D arrays.
     /// &lt;/summary&gt;
-    public interface ILinearAlgebraProvider : ILinearAlgebraProvider&lt;double&gt;, ILinearAlgebraProvider&lt;float&gt;, ILinearAlgebraProvider&lt;Complex&gt;//, ILinearAlgebraProvider&lt;Complex32&gt;
+    public interface ILinearAlgebraProvider : ILinearAlgebraProvider&lt;double&gt;, ILinearAlgebraProvider&lt;float&gt;, ILinearAlgebraProvider&lt;Complex&gt;, ILinearAlgebraProvider&lt;Complex32&gt;
     {
     }
 }</diff>
      <filename>src/Numerics/Algorithms/LinearAlgebra/ILinearAlgebraProvider.cs</filename>
    </modified>
    <modified>
      <diff>@@ -575,5 +575,170 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra
         }
 
         #endregion
+
+        #region ILinearAlgebraProvider&lt;Complex32&gt; Members
+
+
+        public void AddVectorToScaledVector(Complex32[] y, Complex32 alpha, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void ScaleArray(Complex32 alpha, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 DotProduct(Complex32[] x, Complex32[] y)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void AddArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SubtractArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void PointWiseMultiplyArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 MatrixNorm(Norm norm, Complex32[] matrix)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 MatrixNorm(Norm norm, Complex32[] matrix, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void MatrixMultiply(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void MatrixMultiplyWithUpdate(Transpose transposeA, Transpose transposeB, Complex32 alpha, Complex32[] a, Complex32[] b, Complex32 beta, Complex32[] c)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUFactor(Complex32[] a, int[] ipiv)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverse(Complex32[] a)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverseFactored(Complex32[] a, int[] ipiv)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverse(Complex32[] a, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverseFactored(Complex32[] a, int[] ipiv, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolve(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolveFactored(int columnsOfB, Complex32[] a, int ipiv, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolve(Transpose transposeA, int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolveFactored(Transpose transposeA, int columnsOfB, Complex32[] a, int ipiv, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskyFactor(Complex32[] a)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskySolve(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskySolveFactored(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRFactor(Complex32[] r, Complex32[] q)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRFactor(Complex32[] r, Complex32[] q, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolve(int columnsOfB, Complex32[] r, Complex32[] q, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolve(int columnsOfB, Complex32[] r, Complex32[] q, Complex32[] b, Complex32[] x, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolveFactored(int columnsOfB, Complex32[] q, Complex32[] r, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SinguarValueDecomposition(bool computeVectors, Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SingularValueDecomposition(bool computeVectors, Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolve(Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolve(Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolveFactored(int columnsOfB, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        #endregion
     }
 }
\ No newline at end of file</diff>
      <filename>src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.cs</filename>
    </modified>
    <modified>
      <diff>@@ -21,6 +21,11 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 // OTHER DEALINGS IN THE SOFTWARE.
 // &lt;/copyright&gt;
+
+/* This file is automatically generated - do not modify it. 
+   Change NativeLinearAlgebraProvider.include instead.
+   Last generated on: 11/4/2009 2:23:28 PM
+*/
 namespace MathNet.Numerics.Algorithms.LinearAlgebra.Mkl
 {
     using System;
@@ -238,7 +243,27 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Mkl
 
         public void AddVectorToScaledVector(float[] y, float alpha, float[] x)
         {
-            throw new NotImplementedException();
+            if (y == null)
+            {
+                throw new ArgumentNullException(&quot;y&quot;);
+            }
+
+            if (x == null)
+            {
+                throw new ArgumentNullException(&quot;x&quot;);
+            }
+
+            if (y.Length != x.Length)
+            {
+                throw new ArgumentException(Resources.ArgumentVectorsSameLength);
+            }
+
+            if (alpha == 0.0f)
+            {
+                return;
+            }
+
+            SafeNativeMethods.s_axpy(y.Length, alpha, x, y);
         }
 
         public void ScaleArray(float alpha, float[] x)
@@ -403,7 +428,27 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Mkl
 
         public void AddVectorToScaledVector(Complex[] y, Complex alpha, Complex[] x)
         {
-            throw new NotImplementedException();
+            if (y == null)
+            {
+                throw new ArgumentNullException(&quot;y&quot;);
+            }
+
+            if (x == null)
+            {
+                throw new ArgumentNullException(&quot;x&quot;);
+            }
+
+            if (y.Length != x.Length)
+            {
+                throw new ArgumentException(Resources.ArgumentVectorsSameLength);
+            }
+
+            if (alpha.IsZero)
+            {
+                return;
+            }
+
+            SafeNativeMethods.z_axpy(y.Length, ref alpha, x, y);
         }
 
         public void ScaleArray(Complex alpha, Complex[] x)
@@ -562,5 +607,189 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Mkl
         }
 
         #endregion
+        
+        #region ILinearAlgebraProvider&lt;Complex32&gt; Members
+
+        public void AddVectorToScaledVector(Complex32[] y, Complex32 alpha, Complex32[] x)
+        {
+            if (y == null)
+            {
+                throw new ArgumentNullException(&quot;y&quot;);
+            }
+
+            if (x == null)
+            {
+                throw new ArgumentNullException(&quot;x&quot;);
+            }
+
+            if (y.Length != x.Length)
+            {
+                throw new ArgumentException(Resources.ArgumentVectorsSameLength);
+            }
+
+            if (alpha.IsZero)
+            {
+                return;
+            }
+
+            SafeNativeMethods.c_axpy(y.Length, ref alpha, x, y);
+        }
+
+        public void ScaleArray(Complex32 alpha, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 DotProduct(Complex32[] x, Complex32[] y)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void AddArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SubtractArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void PointWiseMultiplyArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 MatrixNorm(Norm norm, Complex32[] matrix)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 MatrixNorm(Norm norm, Complex32[] matrix, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void MatrixMultiply(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void MatrixMultiplyWithUpdate(Transpose transposeA, Transpose transposeB, Complex32 alpha, Complex32[] a, Complex32[] b, Complex32 beta, Complex32[] c)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUFactor(Complex32[] a, int[] ipiv)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverse(Complex32[] a)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverseFactored(Complex32[] a, int[] ipiv)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverse(Complex32[] a, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverseFactored(Complex32[] a, int[] ipiv, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolve(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolveFactored(int columnsOfB, Complex32[] a, int ipiv, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolve(Transpose transposeA, int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolveFactored(Transpose transposeA, int columnsOfB, Complex32[] a, int ipiv, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskyFactor(Complex32[] a)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskySolve(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskySolveFactored(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRFactor(Complex32[] r, Complex32[] q)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRFactor(Complex32[] r, Complex32[] q, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolve(int columnsOfB, Complex32[] r, Complex32[] q, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolve(int columnsOfB, Complex32[] r, Complex32[] q, Complex32[] b, Complex32[] x, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolveFactored(int columnsOfB, Complex32[] q, Complex32[] r, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SinguarValueDecomposition(bool computeVectors, Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SingularValueDecomposition(bool computeVectors, Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolve(Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolve(Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolveFactored(int columnsOfB, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        #endregion
     }
 }
\ No newline at end of file</diff>
      <filename>src/Numerics/Algorithms/LinearAlgebra/Mkl/MklLinearAlgebraProvider.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@
 
 /* This file is automatically generated - do not modify it. 
    Change SafeNativeMethods.include instead.
-   Last generated on: 10/30/2009 3:39:44 PM
+   Last generated on: 11/4/2009 2:23:40 PM
 */
 
 using System.Runtime.InteropServices;
@@ -49,8 +49,8 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Mkl
         [DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
         internal static extern void d_axpy(int n, double alpha, double[] x, [In, Out] double[] y);
 
-        //[DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
-        //internal static extern void c_axpy(int n, ref Complex32 alpha, Complex32[] x, [In, Out] Complex32[] y);
+        [DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
+        internal static extern void c_axpy(int n, ref Complex32 alpha, Complex32[] x, [In, Out] Complex32[] y);
 
         [DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
         internal static extern void z_axpy(int n, ref Complex alpha, Complex[] x, [In, Out] Complex[] y);</diff>
      <filename>src/Numerics/Algorithms/LinearAlgebra/Mkl/SafeNativeMethods.cs</filename>
    </modified>
    <modified>
      <diff>@@ -243,7 +243,27 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.&lt;#=library#&gt;
 
         public void AddVectorToScaledVector(float[] y, float alpha, float[] x)
         {
-            throw new NotImplementedException();
+            if (y == null)
+            {
+                throw new ArgumentNullException(&quot;y&quot;);
+            }
+
+            if (x == null)
+            {
+                throw new ArgumentNullException(&quot;x&quot;);
+            }
+
+            if (y.Length != x.Length)
+            {
+                throw new ArgumentException(Resources.ArgumentVectorsSameLength);
+            }
+
+            if (alpha == 0.0f)
+            {
+                return;
+            }
+
+            SafeNativeMethods.s_axpy(y.Length, alpha, x, y);
         }
 
         public void ScaleArray(float alpha, float[] x)
@@ -408,7 +428,27 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.&lt;#=library#&gt;
 
         public void AddVectorToScaledVector(Complex[] y, Complex alpha, Complex[] x)
         {
-            throw new NotImplementedException();
+            if (y == null)
+            {
+                throw new ArgumentNullException(&quot;y&quot;);
+            }
+
+            if (x == null)
+            {
+                throw new ArgumentNullException(&quot;x&quot;);
+            }
+
+            if (y.Length != x.Length)
+            {
+                throw new ArgumentException(Resources.ArgumentVectorsSameLength);
+            }
+
+            if (alpha.IsZero)
+            {
+                return;
+            }
+
+            SafeNativeMethods.z_axpy(y.Length, ref alpha, x, y);
         }
 
         public void ScaleArray(Complex alpha, Complex[] x)
@@ -567,5 +607,189 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.&lt;#=library#&gt;
         }
 
         #endregion
+        
+        #region ILinearAlgebraProvider&lt;Complex32&gt; Members
+
+        public void AddVectorToScaledVector(Complex32[] y, Complex32 alpha, Complex32[] x)
+        {
+            if (y == null)
+            {
+                throw new ArgumentNullException(&quot;y&quot;);
+            }
+
+            if (x == null)
+            {
+                throw new ArgumentNullException(&quot;x&quot;);
+            }
+
+            if (y.Length != x.Length)
+            {
+                throw new ArgumentException(Resources.ArgumentVectorsSameLength);
+            }
+
+            if (alpha.IsZero)
+            {
+                return;
+            }
+
+            SafeNativeMethods.c_axpy(y.Length, ref alpha, x, y);
+        }
+
+        public void ScaleArray(Complex32 alpha, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 DotProduct(Complex32[] x, Complex32[] y)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void AddArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SubtractArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void PointWiseMultiplyArrays(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 MatrixNorm(Norm norm, Complex32[] matrix)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Complex32 MatrixNorm(Norm norm, Complex32[] matrix, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void MatrixMultiply(Complex32[] x, Complex32[] y, Complex32[] result)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void MatrixMultiplyWithUpdate(Transpose transposeA, Transpose transposeB, Complex32 alpha, Complex32[] a, Complex32[] b, Complex32 beta, Complex32[] c)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUFactor(Complex32[] a, int[] ipiv)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverse(Complex32[] a)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverseFactored(Complex32[] a, int[] ipiv)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverse(Complex32[] a, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUInverseFactored(Complex32[] a, int[] ipiv, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolve(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolveFactored(int columnsOfB, Complex32[] a, int ipiv, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolve(Transpose transposeA, int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void LUSolveFactored(Transpose transposeA, int columnsOfB, Complex32[] a, int ipiv, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskyFactor(Complex32[] a)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskySolve(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void CholeskySolveFactored(int columnsOfB, Complex32[] a, Complex32[] b)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRFactor(Complex32[] r, Complex32[] q)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRFactor(Complex32[] r, Complex32[] q, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolve(int columnsOfB, Complex32[] r, Complex32[] q, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolve(int columnsOfB, Complex32[] r, Complex32[] q, Complex32[] b, Complex32[] x, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void QRSolveFactored(int columnsOfB, Complex32[] q, Complex32[] r, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SinguarValueDecomposition(bool computeVectors, Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SingularValueDecomposition(bool computeVectors, Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolve(Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolve(Complex32[] a, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x, Complex32[] work)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SvdSolveFactored(int columnsOfB, Complex32[] s, Complex32[] u, Complex32[] vt, Complex32[] b, Complex32[] x)
+        {
+            throw new NotImplementedException();
+        }
+
+        #endregion
     }
 }
\ No newline at end of file</diff>
      <filename>src/Numerics/Algorithms/LinearAlgebra/NativeAlgebraProvider.include</filename>
    </modified>
    <modified>
      <diff>@@ -49,8 +49,8 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.&lt;#= namespaceSuffix #&gt;
         [DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
         internal static extern void d_axpy(int n, double alpha, double[] x, [In, Out] double[] y);
 
-        //[DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
-        //internal static extern void c_axpy(int n, ref Complex32 alpha, Complex32[] x, [In, Out] Complex32[] y);
+        [DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
+        internal static extern void c_axpy(int n, ref Complex32 alpha, Complex32[] x, [In, Out] Complex32[] y);
 
         [DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
         internal static extern void z_axpy(int n, ref Complex alpha, Complex[] x, [In, Out] Complex[] y);</diff>
      <filename>src/Numerics/Algorithms/LinearAlgebra/SafeNativeMethods.include</filename>
    </modified>
    <modified>
      <diff>@@ -45,9 +45,9 @@
   &lt;/ItemGroup&gt;
   &lt;ItemGroup&gt;
     &lt;Compile Include=&quot;Algorithms\LinearAlgebra\Atlas\AtlasLinearAlgebraProvider.cs&quot;&gt;
-      &lt;DependentUpon&gt;AtlasLinearAlgebraProvider.tt&lt;/DependentUpon&gt;
       &lt;AutoGen&gt;True&lt;/AutoGen&gt;
       &lt;DesignTime&gt;True&lt;/DesignTime&gt;
+      &lt;DependentUpon&gt;AtlasLinearAlgebraProvider.tt&lt;/DependentUpon&gt;
     &lt;/Compile&gt;
     &lt;Compile Include=&quot;Algorithms\LinearAlgebra\Atlas\SafeNativeMethods.cs&quot;&gt;
       &lt;DependentUpon&gt;SafeNativeMethods.tt&lt;/DependentUpon&gt;
@@ -59,9 +59,9 @@
     &lt;Compile Include=&quot;Algorithms\LinearAlgebra\ILinearAlgebraProviderOfT.cs&quot; /&gt;
     &lt;Compile Include=&quot;Algorithms\LinearAlgebra\ManagedLinearAlgebraProvider.cs&quot; /&gt;
     &lt;Compile Include=&quot;Algorithms\LinearAlgebra\Mkl\MklLinearAlgebraProvider.cs&quot;&gt;
-      &lt;DependentUpon&gt;MklLinearAlgebraProvider.tt&lt;/DependentUpon&gt;
       &lt;AutoGen&gt;True&lt;/AutoGen&gt;
       &lt;DesignTime&gt;True&lt;/DesignTime&gt;
+      &lt;DependentUpon&gt;MklLinearAlgebraProvider.tt&lt;/DependentUpon&gt;
     &lt;/Compile&gt;
     &lt;Compile Include=&quot;Algorithms\LinearAlgebra\Mkl\SafeNativeMethods.cs&quot;&gt;
       &lt;AutoGen&gt;True&lt;/AutoGen&gt;</diff>
      <filename>src/Numerics/Numerics.csproj</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>8f2ee01da2157d9caddc8e565746e85cfee6ff8f</id>
    </parent>
  </parents>
  <author>
    <name>Marcus Cuda</name>
    <email>marcus@cuda.net</email>
  </author>
  <url>http://github.com/cuda/mathnet-numerics/commit/8fcc1ce1566343b4aae8ebc0941a082f707cf299</url>
  <id>8fcc1ce1566343b4aae8ebc0941a082f707cf299</id>
  <committed-date>2009-11-04T04:25:03-08:00</committed-date>
  <authored-date>2009-11-04T04:24:14-08:00</authored-date>
  <message>added complex32 type to native provider templates</message>
  <tree>08980aa2bc0a9b8c19a5d05a146a818ca24b15d3</tree>
  <committer>
    <name>Marcus Cuda</name>
    <email>marcus@cuda.net</email>
  </committer>
</commit>
