tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

ガウス曲率と平均曲率を計算する

Discrete Differential-Geometry Operators for Triangulated 2-Manifolds | SpringerLinkを実装した。 GitHub - tak0kada/curvature: Implementation of discrete Gaussian and mean curvature defined in Meyer et al., 2003

「はじめての数理論理学」を読んだ

命題を(形式的に)正しく書き下せないと数学専門の人と会話にすら出来ないのではじめての数理論理学 証明を作りながら学ぶ記号論理の考え方 | 森北出版株式会社を読んだ。以下駄文。

楕円体のアラインメント

楕円体を回転させて綺麗に並べる。

プログラムのコメントスタイル

javadocスタイルでやっていくことにした(完) その3 ヘッダーファイルにDoxygenコメントを追加する http://www.doxygen.jp/docblocks.html

FFTのお気持ち理解

DFTを速くやってくれるやつ。繰り返しになる部分を良い感じに処理してくれるのでO(n2)の計算がO(nlogn)が出来てしまう。多倍長乗算に応用されている。 離散フーリエ変換の計算法(pdf): 周期間引きというのは周期領域で行の入れ替えをすること 離散フーリエ変…

「やる夫で学ぶディジタル信号処理」

やる夫で学ぶディジタル信号処理の11章まで読んだ。以下はpdf中の図をフーリエ変換などについてまとめたもの。畳み込みetcは分からなくなったらまた記事を参照する。

plyファイルをc++で開く

GitHub - nmwsharp/happly: A C++ header-only parser for the PLY file format. Parse .ply happily!を使えば簡単にデータを取り出せて便利。

お蔵入りしたmeshlabのフィルターたち

meshlabはメッシュデータの可視化と色々の定型的な処理をしてくれる汎用性の高い便利ソフトウェアである。簡単なので色々試してみて、ある程度動作したけれど結局小回りが効かずにお蔵入りしそうなスクリプトを以下に貼っておく。

球面上の分布間の距離

分布$X, X': S^{2} \to \mathrm{R}$があったとき、2つの分布の距離を例えば$d(X, X') := \int_{S^{2}} (X - X')^{2} d\theta d\phi$と定義すると球面調和関数$Y_{l,m}$を用いて$X = \sum_{l,m} c_{lm}Y_{lm}$と書けるので、$\int_{S^{2}} Y_{lm}Y_{jk} d\the…

ボクセルデータからのメッシュ生成

結論: GitHub - mkazhdan/IsoSurfaceExtraction: Isosurface extraction from regular voxel gridsで十分 (3D numpy array).flatten().tofile()と(1D numpy array).tofile()の出力は異なるので注意(python上での演算では区別が付かないがメモリのレイアウト…

TIFFファイルのフォーマット

CGファイル概説 目次のTiffファイルの項目が分かりやすい(分かってない) IFDという色々のパラメータを入れるテーブルがある 実際のデータはフィールドがStripOffsetsとなっているところを見てオフセットを調べて読み取る https://symfo.web.fc2.com/blog/tif…

点の集合を包含する球

点の集合を包含する球のアルゴリズムを参照した。

方向統計学で出てくる分布

球面上の分布をKL-divergenceで比較できないか調べ物をしていていくつか分布を見つけた。指数分布族であり、正規分布と似た表記になっている。画像検索で分布の雰囲気を調べていると、一峰性の分布の絵が出てくる。ガウス平滑化のような使い方が出来れば良い…

gprofメモ

ちょっとプログラムが遅すぎるのでプロファイラを使った。

球面調和関数 in C++

tak0kada/spherical_harmonicsを書いた

vim-lspとaleのインストール

YouCompleteMeをC++のためにインストールしていたが、Vim弱者のため設定が直せなくなってprabirshrestha/vim-lspとw0rp/aleに乗り換えた。vim-lspもaleもコードの解析にclangdを利用しており、compile_flags.txtというファイルを置いておかないと、デフォル…

空間分割アルゴリズム

三角形に分割された閉曲面(球面)と複数の半直線があったとき、それぞれが交差するかどうかの判定をしたい。レイトレーシングで使用されるようなアルゴリズムとしてはBVH、Quadtree、Octreeなどが見つかった。 BVH (Bounding Volume Hierarchies)は、領域を木…

三角メッシュ用のライブラリ書いた

GitHub - tak0kada/cnthd: Halfedge data structure for triangular mesh ハーフエッジデータ構造のC++ライブラリ。面の向き付けがバラバラなファイルに対応しようと思っていたがバグを出してしまって(しかもそれほど使わない機能)書き直す時間が惜しいので…

多次元尺度構成法(MDS)メモ

多次元尺度構成法は複数の要素の間で距離(あるいは距離に類似したもの)が計算できる時、それを用いてデータの数より低い次元を指定して、その次元にデータを配置する手法。

球面調和関数係数で表された物体の回転推定

A Robust Method for Rotation Estimation Using Spherical Harmonics Representation - IEEE Journals & Magazineを実装した。以下はコードを貼り付けたのみ。

n単体の作り方

$(1,1,\ldots,1)^{t}$をQR分解して得られるQ因子は直交行列でかつ、1列目が等しい。ここからn個のn-1次元行ベクトルを取ると、n単体が得られる。 お気持ち証明としては、n個の正規直交基底を、ある1つの次元$z$の値が同じになるように取って、その後その次元…

Antergos Linux Project Ends

antergos.com GUIインストーラ付きArch LinuxであるところのAntergosが開発停止になった。Antergos固有のレポジトリにあるものはAURに移行するのでとりあえず今使用しているシステムは使い続けられる、とのこと。移行先を考えねば...

pythonで.RDataファイルの中身(array)を読み込む

import rpy2.robjects as ro # RDataの中に入っているデータについている名前は事前にRで確認しておく # arrayの次元はhoge$dimで取れないので下記リンクと異なる ro.reval("load(\"test.RData\"); data<-hoge; shape<-dim(hoge)") # https://stackoverflow.…

Wasserstein距離

https://twitter.com/yoriyuki/status/1126423987444015104を見かけた。Wassersteinとは何か調べると、Wasserstein GAN と Kantorovich-Rubinstein 双対性という記事を見つけた。DeepLearningは理解していないが、線形代数的な話題として捉えられるらしい。 …

dockerコマンドメモ

docker login docker pull archlinux/base docker build -t antergos_base . docker -it --rm antergos_base bash docker save antergos_base > antergos_base.tar # tag情報は保存されない docker load < antergos_base.tar # need afterwards: docker tag …

球面調和関数係数(3 x n行列)の可視化

3次元空間にひと塊の形(球と同相)があって、その表面上の点の集合を考える。何らかの方法で塊は球面に変形できて、その変形に伴って点の集合は球面上に写される、と考える。その時、元のX、Y、Z座標をそれぞれ球面上の分布($S^{2} \to \mathrm{R}$)と考える…

pythonからシェルスクリプトを呼び出す

一塊になったシェルスクリプトをリファクタリングしている。 ただ呼び出す場合 import subprocess class ShellException(Exception): pass def shell_exec(cmd: str, timeout_s: float = 0) -> None: cmd_org = cmd timeout_s = "" if timeout_s == 0 else "…

内積の定義について

微分幾何で接空間を考えているとき、その上で内積を定義する(あるいは普段のユークリッド空間と同じようなものがあると考える)とき、どうやら2種類の流儀があるように見える。(独自研究)

vscodeでmarkdownからpdfに変換する

Makdown MathとMarkdown PDFという拡張機能をインストールしてみた。Visual Studio Code - ArchWikiとError: Failed to lanuch chrome! · Issue #97 · yzane/vscode-markdown-pdf · GitHubを見て取り敢えずchromiumの実行ファイルのパスを入力した(~/.config…

doubleしか入っていないCSVをパースするプログラム

要件はメモリ128GBのPCで70GBのCSVをnp.ndarray形式でメモリに乗せること。np.load_txtも一応試したが、エラーでターミナルやブラウザも巻き込んで落ちた。std::ios::seekdirは相対位置指定にしか使えないはずだが、enumのため型変換されて、引数一つだけで…