Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
///////////////////////////////////////////////////////////////////////////////
// For information as to what this class does, see the Javadoc, below. //
// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, //
// 2007, 2008, 2009, 2010, 2014, 2015, 2022 by Peter Spirtes, Richard //
// Scheines, Joseph Ramsey, and Clark Glymour. //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
///////////////////////////////////////////////////////////////////////////////
package edu.cmu.tetrad.util;
import java.text.DecimalFormat;
import java.text.NumberFormat;
/**
* Some utilities for handling arrays.
*
* @author josephramsey
*/
final class ArrUtils {
//=========================PUBLIC METHODS===========================//
/**
* Copies a 2D double arr.
*
* @param arr the array to copy.
* @return the copied array.
*/
public static int[] copy(int[] arr) {
if (arr == null) {
return null;
}
int[] copy = new int[arr.length];
System.arraycopy(arr, 0, copy, 0, arr.length);
return copy;
}
/**
* Copies the given array, using a standard scientific notation number formatter and beginning each line with a tab
* character. The number format is DecimalFormat(" 0.0000;-0.0000").
*
* @param arr The double array to turn into a String.
* @return The formatted array.
*/
public static String toString(double[] arr) {
NumberFormat nf = new DecimalFormat(" 0.0000;-0.0000");
return ArrUtils.toString(arr, nf);
}
/**
* Copies the given array, using a standard scientific notation number formatter and beginning each line with a tab
* character. The number format is DecimalFormat(" 0.0000;-0.0000").
*
* @param arr The int array to turn into a string.
* @return The formatted array.
*/
public static String toString(int[] arr) {
StringBuilder buf = new StringBuilder();
buf.append("\n");
for (int anArr : arr) {
buf.append(anArr).append("\t");
}
return buf.toString();
}
/**
* Copies the given array, using a standard scientific notation number formatter and beginning each line with the
* given lineInit. The number format is DecimalFormat(" 0.0000;-0.0000").
*
* @param arr The double array to turn into a string.
* @param nf The number format to use.
* @return The formatted string.
*/
private static String toString(double[] arr, NumberFormat nf) {
String result;
if (nf == null) {
throw new NullPointerException("NumberFormat must not be null.");
}
if (arr == null) {
result = ArrUtils.nullMessage();
} else {
StringBuilder buf = new StringBuilder();
buf.append("\n");
buf.append("\t");
for (double anArr : arr) {
buf.append(nf.format(anArr)).append("\t");
}
result = buf.toString();
}
return result;
}
//=========================PRIVATE METHODS===========================//
private static String nullMessage() {
return "\n" +
"\t" +
"";
}
}