main/src/georegression/fitting/curves/FitConicA_F64.java
@Override
	public boolean process(List<Point2D_F64> points , ConicGeneral_F64 output ) {
		final int N = points.size();
		if( N < 3 )
			throw new IllegalArgumentException("At least 3 points required");

		A.reshape(N,6);

		for (int i = 0,index=0; i < N; i++) {
			Point2D_F64 p = points.get(i);

			double x = p.x;
			double y = p.y;

			A.data[index++] = x*x;
			A.data[index++] = x*y;
			A.data[index++] = y*y;
			A.data[index++] = x;
			A.data[index++] = y;
			A.data[index++] = 1;
		}

		if( !solver.process(A,1,nullspace) )
			return false;

		output.A = nullspace.data[0];
		output.B = nullspace.data[1];
		output.C = nullspace.data[2];
		output.D = nullspace.data[3];
		output.E = nullspace.data[4];
		output.F = nullspace.data[5];

		return true;
	}
@Override
	public boolean process(List<Point2D_F64> points , ConicGeneral_F64 output ) {
		final int N = points.size();
		if( N < 3 )
			throw new IllegalArgumentException("At least 3 points required");

		A.reshape(N,6);

		for (int i = 0,index=0; i < N; i++) {
			Point2D_F64 p = points.get(i);

			double x = p.x;
			double y = p.y;

			A.data[index++] = x*x;
			A.data[index++] = x*y;
			A.data[index++] = y*y;
			A.data[index++] = x;
			A.data[index++] = y;
			A.data[index++] = 1;
		}

		if( !solver.process(A,1,nullspace) )
			return false;

		output.A = nullspace.data[0];
		output.B = nullspace.data[1];
		output.C = nullspace.data[2];
		output.D = nullspace.data[3];
		output.E = nullspace.data[4];
		output.F = nullspace.data[5];

		return true;
	}
@ Override public boolean process ( List < Point2D_F64 > points , ConicGeneral_F64 output ) { final int N = points . size ( ) ; if ( N < 3 ) throw new IllegalArgumentException ( "At least 3 points required" ) ; A . reshape ( N , 6 ) ; for ( int i = 0 , index = 0 ; i < N ; i ++ ) { Point2D_F64 p = points . get ( i ) ; double x = p . x ; double y = p . y ; A . data [ index ++ ] = x * x ; A . data [ index ++ ] = x * y ; A . data [ index ++ ] = y * y ; A . data [ index ++ ] = x ; A . data [ index ++ ] = y ; A . data [ index ++ ] = 1 ; } if ( ! solver . process ( A , 1 , nullspace ) ) return false ; output . A = nullspace . data [ 0 ] ; output . B = nullspace . data [ 1 ] ; output . C = nullspace . data [ 2 ] ; output . D = nullspace . data [ 3 ] ; output . E = nullspace . data [ 4 ] ; output . F = nullspace . data [ 5 ] ; return true ; }
Fits the conic to the points.  Strongly recommended that you transform the points such that they have
zero mean and a standard deviation along x and y axis, independently.

@param points (Input) points
@param output (Output) found conic
@return true if successful or false if it failed
Fits the conic to the points . Strongly recommended that you transform the points such that they have zero mean and a standard deviation along x and y axis independently .