スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[PHP] fputcsvの改行コードはLF 

PHPには、配列をCSV形式の一行としてファイルに書き出すfputcsvという関数があります。
この関数は、改行まで出力しますが、改行コードを指定することができません。

int fputcsv ( resource $handle , array $fields [, string $delimiter = ',' [, string $enclosure = '"' ]] )
fputcsv() は、行(fields 配列として渡されたもの)を CSV としてフォーマットし、それを handle で指定したファイルに書き込みます (いちばん最後に改行を追加します)。
PHP_EOLのコードを使用するのかと思いきや、現時点ではLF固定となっています。
スポンサーサイト

続きを読む...

[PHP] 任意桁数での切り捨て 

PHPにおいて、任意桁数での切り捨てを行う関数。

function y_floor($value, $precision = 0) {
	if ($value < 0) {
		$offset = abs($value - bcadd($value, 0, $precision)) > 0 ? pow(0.1, $precision) : 0;
		return (float) bcsub($value, $offset, $precision);
	}
	return (float) bcadd($value, 0, $precision);
}
組み込みのfloor関数は、何故か小数点以下の切り捨てしか出来ないため、任意の桁数でやりたい場合、別途作る必要がある。
10^xしてfloorして割るなんてすると誤差が出たりするので(floor((0.1 + 0.7) * 10)的な)、BC Mathの関数を使ってみた。
負数の処理が微妙。もっと良い方法あるんだろうなぁ…。

complex.hを使ったFFT関数 

用途が激しく限られる、C言語で書かれたFFT(高速フーリエ変換)関数です。Tomy's Homeに掲載されていたものを、C99で追加された標準ライブラリcomplex.hのcomplex型に対応させてみました(※C++の標準ライブラリのものとは違います)。
complex型とは所謂 複素数型のことで、実部と虚部を単一変数で扱えます。これを使えば、コードが大分すっきりするかも。


ただ、未確認ですが、GCCでしか動かないと思います。
用途は…卒論で使うぐらいかな…。
[fft.c]

続きを読む...

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。