リニアングラフ3D
リニアングラフ2D
リニアンプロセッサー
関数電卓 RINPn(りんぷん)
特徴
機能の数とのトレードオフにより、電卓ソフトとしては若干大きく&重くなってしまっている「 リニアンプロセッサー 」から、 日常での使用頻度の高い機能のみに絞って小型軽量にまとめたソフトで、名称も「 RINEARN Processor nano 」の略になっています。
計算式やプログラムを実行するスクリプトエンジンに新開発の Vnano (VCSSL nano) を採用し、 リニアンプロセッサーと同様、C言語ライクな記法での自作関数・変数の定義に対応。 グラフ描画やアプリレベルのプログラム作成には非対応ですが、その代わり軽快なレスポンスを実現しています。
| 詳細ページ | ダウンロード | ソースコード リポジトリ |
プログラミング言語 VCSSL
特徴
リニアングラフ3D&2Dの自動処理用言語にも採用しているため、データを加工してプロットしたり、それを自動で大量のファイルに行ったりするのに便利です(ユーザー層の大多数がそういった用途です)。
また、簡易用途に焦点を絞ったものですが、GUIや2次元 & 3次元グラフィックス機能も標準でサポートしているため、ちょっとした画面を備えたツールを作ったりするのにも使えます。
処理速度面では、インタープリタ式でありつつ、毎秒1億演算(100 MFLOPS)を超えるくらいは発揮可能で、それなりの計算量の用途もこなせます。 実際にコードアーカイブでは計算系のコード例も公開しています。
また、アプリ内組み込み用サブセット言語である「Vnano」のコードも実行できます。 そちらはさらに高速です(ピーク値でGFLOPSクラス)。
スクリプトエンジン Vnano
特徴
言語仕様はVCSSLのサブセットで、C言語系のシンプルな文法によるスクリプト処理機能を提供します。 後述の Exevalator よりも実装サイズは大きいですが、その代わり機能数が多く、適材適所の使い分けを想定しています。
処理速度面では、中間コードの実行レイヤーにベクトルレジスタマシン型のVMを採用する事により、最大で数百MFLOPS〜数GFLOPSクラスの演算速度を発揮します。
| 公式サイト | ダウンロード | ソースコード リポジトリ | コンセプト解説記事 | アーキテクチャ解説記事 |
式計算ライブラリ Exevalator
特徴
各言語版ごとに、実装は単一ファイルのみに収まっており、開発アプリケーションのソースコードフォルダ内に放り込むだけで、簡単に使う事ができます。 ライセンスも実質著作権フリーである Unlicense or CC0 です。
処理速度もそれなりに重視しており、コンパイラ型言語用の実装では、数百MFLOPSクラス(概ねVnanoの半分程度)の処理速度を発揮します。
また、MCPによる制御をサポートしており、AI用の計算ツールとしても利用できます。
| 公式サイト | ダウンロード | ソースコード リポジトリ | コンセプト解説記事 | アーキテクチャ解説記事 |
ベクトルレジスタ中間言語 VRIL
特徴
VRILは「Vector Register Intermediate Language(ベクトルレジスタ中間言語)」の略で、 名称の通り、ベクトル単位の仮想レジスタ/メモリーを備える、レジスタマシン型のVM実装を前提に仕様設計されています。
VRILの命令セットはほぼ全てが仮想的なSIMD命令で構成されているため、ベクトル演算では命令実行オーバーヘッドに対して実演算時間の比率が高められ、高い性能を実現できます。 また、シンプルな三番地コードの形式であるため最適化が容易で、スカラ演算性能も高めやすい側面を備えています。
VRILは将来的にVCSSLの処理系内で採用する予定で、現在はそのサブセットであるVnanoにおいて先行して採用しています。
ベクトルレジスタ仮想マシン VRIL-VM
特徴
データ解析ソフトウェアなどでの使用も見込んで、数値のスカラ演算およびベクトル演算の性能を共に重視しており、 そのためベクトルプロセッサ風の命令を備えるレジスタマシン方式のアーキテクチャを採用しています。 具体的には、中間コード言語にSIMD命令主体のVRILを採用し、レジスタやメモリーのデータ単位も全てベクトル(配列)となっています。
実測性能では、全体がJava言語のみで実装された中間コードインタープリタでありながら、倍精度浮動小数点演算で数百MFLOPS(スカラ演算)〜 数GFLOPS(ベクトル演算)クラスのピーク性能を発揮します。 これにより、プラットフォーム非依存性やアプリケーションへの組み込みやすさと、数値演算パフォーマンスとの間の高い妥協点を実現します。
VRIL-VMは将来的にVCSSLの処理系内で採用する予定で、現在はそのサブセットであるVnanoにおいて先行して採用・開発しています。
| 参照: Vnano処理系のアーキテクチャ | 実装コード |
VRIL出力コンパイラ LexicalCraft
特徴
特にアプリケーション組み込み用途を想定したもので、構造上は一般的な字句/構文/意味解析器およびコード生成処理の4ステージ(最適化はVM側)を備えつつ、 カスタマイズ性を確保するために各ステージの分離性を重視し、複雑性や実装規模もコンパクトに抑える事を目指したコンパイラです。
また、アプリケーション内に組み込むという用途上、コンパイル時でのスタックオーバーフロー等の発生を回避しやすいよう、 構文解析器(パーサ)を含む全ステージを非再帰処理のみで実装する設計を採用しています。
LexicalCraft は現在、Vnanoのスクリプトエンジン内部の中間コードコンパイラ層において採用・開発しています。
ASTインタープリタ GARNET
特徴
アーキテクチャは広義のASTインタープリタに類するもので、 ポリモーフィズムで機能分化した演算オブジェクトの集合を、抽象構文木と同型のツリー構造となるよう参照リンクで繋ぐ事で、コードを比較的高速に実行します。
GARNETは、VCSSL最初期の頃から処理系の実行層として継続採用してきたものですが、現在は性能向上が鈍化し、実装も複雑化しつつあるため、 将来のVCSSL処理系では別方式のVRIL-VMへ置き換わる予定です。
その後はGARNETは互換エンジンの役割を担う予定であるため、現在は拡張方向での開発よりも、修正やメンテナンスを中心として安定性を固める方向の開発に収束しています。
簡易3D描画ライブラリ RINEARN-X
特徴
ベクトルや変換行列等、一般に3Dに必要となる数学的な記述を要求せずに、データ可視化などの比較的単純な3DCGを、手軽に描画する事を目指した、簡易用途向けの3D描画ライブラリです。 もともとは リニアングラフ3D の描画エンジンから派生したもので、 現在は VCSSL の 3DCG機能 の下層レイヤーなどに採用しています。
RINEARN-X は、2009年頃に外部への一般公開を行ったものの、 その後の公開バージョンおよびドキュメントの更新やメンテナンスは、現在停止中となっています。 これはVCSSLの開発に伴って大幅な改修を行ったためで、 将来的には、再び一般公開に向けたバージョンおよびドキュメントの再整備を計画しています( そのタイミングにおいて「 BlockMount3D 」に改称予定です )。
VCSSL コードアーカイブ
シミュレーション
主に科学系のテーマを中心とする、いろいろなシミュレーションのコードです。
|
波の干渉(面上の円形波)のアニメーション表示 |
|
|
|
面上の円形波が干渉する様子を、パラメータを操作しながらアニメーションで見られるプログラムです。 |
|
正弦波のアニメーション表示 |
|
|
|
振幅・波長・周期をスライダ―で操作しながら、正弦波のグラフをアニメーションで見られるプログラムです。 |
|
Vnano版 | ローレンツ方程式を数値的に解くプログラム |
|
|
|
ローレンツ方程式を4次ルンゲ=クッタ法によって解き、グラフ描画用のデータを出力するプログラムです。 |
計算・アルゴリズム
一般的な計算や、少し専門的な数値計算などにおける、各種のアルゴリズムのサンプルコードなどです。
|
シンプソン法による数値積分 |
|
|
|
積分の値を数値的に求めます。台形法よりも高精度な方法として、被積分関数を微小区間内で二次関数近似して求めた面積を足しあげる、シンプソン法を使用します。 |
|
円周率1万桁の計算(ガウス=ルジャンドル法) |
|
|
|
ガウス=ルジャンドル法により、円周率を1万桁まで計算するプログラムです。 |
|
小数(浮動小数点数)から分数へ近似的に変換するツール |
|
|
|
小数(浮動小数点数)を、適当な誤差の範囲内で、近い分数に変換してくれるツールプログラムです。 |
グラフ描画
ファイルや配列内のデータ、または数式などを、グラフに描画するコードです。
|
ファイルを3Dグラフにプロットする(曲面/メッシュグラフ) |
|
|
|
座標値ファイルの内容を、3次元の曲面/メッシュグラフにプロットするサンプルプログラムです。 |
|
配列を3Dグラフにプロットする(曲面/メッシュグラフ) |
|
|
|
配列の内容を、3次元の曲面/メッシュグラフにプロットするサンプルプログラムです。 |
|
配列を2Dグラフにプロットする |
|
|
|
配列の内容を、2次元グラフにプロットするサンプルプログラムです。 |
グラフィックス
2DCG/3DCGの描画や画像処理、その他グラフィックス関連の処理を行うコードです。一部でGUI画面を備えたツール的なものもあります。
|
条件を満たす色を透明にする簡易ツール |
|
|
|
画像ファイルを開き、指定された条件を満たす色を透明に置き換えて保存する簡易ツールです。 |
|
画像を任意サイズに拡大・縮小する簡易ツール(複数ファイル一括処理版) |
|
|
|
フォルダ内にある全ての画像ファイルを開き、任意のサイズに拡大・縮小して、別のフォルダに保存する簡易ツールです。 |
|
頂点配列によるモデルの変形アニメーション |
|
|
|
頂点配列によってモデルを変形アニメーションさせるサンプルです。 |
ツールとして使えるプログラム
全カテゴリー内から、作業用のツールとしても使えるプログラムをまとめてリストアップしています。
|
連番画像をアニメーション再生する簡易ツール |
|
|
|
フォルダ内の連番画像ファイルを、動画への変換不要で、そのままアニメーションとして再生できる簡易ツールです。 |
|
角度の「度」とラジアンとを相互変換し、図示もするツール |
|
|
|
45度などの「度」の値と、ラジアンの値とを相互に変換できるツールです。対応する角度の図示もできます。 |
|
RGBやカラーコードの色表示と相互変換ができる簡易ツール |
|
|
|
RGB値とカラーコードから、GUI画面上で色の表示や相互変換を行う事ができる簡易ツールです。 |
その他
先行開発版はこちら
各ソフトウェアにおいて、開発途中の次期バージョンや、特定の機能を試験的に実装したバージョンなどを、先行開発版として試験公開する場合があります。 詳細はリンク先ページをご参照ください。
ソースコード等はこちら (GitHub)
オープンソース開発のソフトにウェアついては、GitHub上でソースコードのリポジトリを公開しています。
リニアンビューア ( 開発終了、再開未定 )
リニアンビューア ( RINEARN Viewer )は、各種OS対応の簡易画像ビューアソフトです。 機能・性能的にこれといった特徴はありませんが、USBメモリーなどに入れておくと、別のOS上でもインストール不要で使う事ができます。
グラフムービープレイヤー ( 開発終了、再開未定 )
連番ファイルをアニメーション的にグラフプロットするソフトです。 古いソフトで、現在は既に開発・メンテナンス共に終了していますが、あまり代替ソフトが無いようなので、配布ファイルと説明ページは今もそのまま置いています。



















