BVector 0.5

行ベクトルを BMatrix としてサポートし、 転置のメソッド tran を追加しました。今回も結果を $\TeX$ で出力し、MathJax で整形しています。

実行結果

ソース

"expand source" を押すと展開されます。元に戻すには、このページを再ロードしてください。

bvector05.html

今回はテストに転置(tran)を追加しました。
/**
 * 結果表示用の関数です。HTMLとして展開します。
 * @since 0.1
 */
function writeln(str) {
	document.writeln(str + "<br>");
}

/**
 * テストの実行と表示を行う関数です。
 * @since 0.1
 */
function test(caption, exp, tex) {
	writeln("<span style='font-family: monospace'>");
	writeln(caption + " " + exp);
	writeln("</span>");
	var ans = eval(exp);
	if (isNaN(ans)) {
		writeln("$$" + tex + "=" + ans.toTeX() + "$$");
	} else {
		writeln("$$" + tex + "=" + ans + "$$");
	}
}

// テストのメインです。
test("コンストラクタ", "a = new BVector(0, 0, 1, 1)", "\\boldsymbol{a}");
test("コンストラクタ", "b = new BVector(0, 1, 0, 1)", "\\boldsymbol{b}");
test("要素", "a.getValue(3)", "(\\boldsymbol{a})_3");
test("論理和", "a.or(b)", "\\boldsymbol{a} \\vee \\boldsymbol{b}");
test("論理積", "a.and(b)", "\\boldsymbol{a} \\wedge \\boldsymbol{b}");
test("絶対値", "a.abs()", "\\left| \\boldsymbol{a} \\right|");
test("反転", "a.inv()", "\\overline{\\boldsymbol{a}}");
test("転置", "a.tran()", "^t\\boldsymbol{a}");
test("論理差", "a.diff(b)", "\\boldsymbol{a} - \\boldsymbol{b}");
test("排他的論理和", "a.xor(b)", "\\boldsymbol{a} \\oplus \\boldsymbol{b}");
test("ドット積", "a.dot(b)", "\\boldsymbol{a} \\cdot \\boldsymbol{b} = \\; ^t\\boldsymbol{a} \\boldsymbol{b}");
test("スカラとの積", "a.mul(0)", "\\boldsymbol{a} \\times 0");

bvector05.js

今回追加した2進ベクトルの転置を求めるメソッド BVector.tran() の定義です。
	/**
	 * 2進ベクトルを転置して(transpose)2進行列として返します。
	 * @return ベクトルの転置を返します。
	 * @since 0.5
	 */
	tran : function() {
		var bm = new BMatrix(1, this.order);
		for (var j = 1; j <= this.order; j++)
			bm.setValue(1, j, this.getValue(j));
		return bm;
	},

Powered by
SyntaxHighlighter MathJax W3C HTML5