tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

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のため型変換されて、引数一つだけで…

pybindでC++からpythonを呼び出す実行ファイルを作る

それほど難しくないはずだが、実際バグらせると無限のコンパイルエラーが出て結構つらい。以下はサンプルコード。

VirtualboxにUSBからWindowsをインストール

VirtualBoxでのUSBデバイス認識 - Qiita: USBを認識できるようにする Extension Packはyay -S virtualbox-ext-oracleでインストール USBを認識したが、virtualboxのブートメニューにusbはなし sudo vboxmanage internalcommands createrawvmdk -filename ~/u…

クラスタリングについてのとても浅い理解

クラスタリングのお勉強をしている

docker内でpython実行するやつ

GitHub - tak0kada/dpythonを書いた。.bashrcにexport PATH="$PATH:~/bin"を追記しておけば、普通のpythonの代わりにdpython、ipythonの代わりにdipythonを使える。$PWDしかマウントしないが、データ解析に使うのにそれ以外のディレクトリにアクセスできる必…