Rat2tex.java

/*
 * $Id: Rat2tex.java,v 1.4 2008/02/25 08:35:52 koga Exp $
 * 
 * Copyright (C) 2004 Koga Laboratory. All rights reserved.
 */
package org.mklab.tool.matrix;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import org.mklab.nfc.scalar.DoubleRationalPolynomial;


/**
 * 有理多項式をTeX形式でファイルに保存するクラスです。
 * 
 * <p> Save a rational polynomial to a file
 * 
 * @author koga
 * @version $Revision: 1.4 $
 * @see org.mklab.tool.matrix.Poly2tex
 * @see org.mklab.tool.matrix.Mat2tex
 */
public class Rat2tex {

  /**
   * @param r 有理多項式
   * @param file ファイル名
   * @throws IOException 出力できない場合
   */
  public static void rat2tex(DoubleRationalPolynomial r, String file) throws IOException {
    try (PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)))) {
      pw.print(rat2texf(r));
    }
  }

  /**
   * @param r 有理多項式
   * @param file ファイル名
   * @param var_name 変数名
   * @throws IOException 出力できない場合
   */
  public static void rat2tex(DoubleRationalPolynomial r, String file, String var_name) throws IOException {
    try (PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)))) {
      pw.print(rat2texf(r, var_name));
    }
  }

  /**
   * @param r 有理多項式
   * @return TeX形式の文字列
   */
  @SuppressWarnings("nls")
  public static String rat2texf(DoubleRationalPolynomial r) {
    String num = Poly2tex.poly2texf(r.getNumerator());
    String den = Poly2tex.poly2texf(r.getDenominator());

    String tex = "\\frac{" + num + "}{" + den + "}";

    return tex;
  }

  /**
   * @param r 有理多項式
   * @param var_name 変数名
   * @return TeX形式の文字列
   */
  @SuppressWarnings("nls")
  public static String rat2texf(DoubleRationalPolynomial r, String var_name) {
    String num = Poly2tex.poly2texf(r.getNumerator(), var_name);
    String den = Poly2tex.poly2texf(r.getDenominator(), var_name);

    String tex = "\\frac{" + num + "}{" + den + "}";

    return tex;
  }

}