I am Charmie

メモとログ

C++

gdb on Mac OSX Catalina

コード署名と資格情報の登録はここに書いてある通り.

vcpkg (C++ package manager): install on Mac OSX

Step 0: check gcc and g++ clang might cause compilation error. % g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/9.2.0_3/libexec/gcc/x86_64-apple-darwin19/9.2.0/lto-wrapper Target: x86_64-apple-darwin…

cmakeの使い方 (コンパイルしたライブラリを使うため)

とりあえず xxx-config.cmakeさえ作っておけば良い? static library add_libraryでSTATICを指定 ファイルの出力先はset_target_properties(ARCHIVE_OUTPUT_DIRECTORY ${DIR_TO_OUTPUT})で指定 shared library add_libraryでSHAREDを指定 ファイルの出力先は…

vcpkg: install c++ packages

vcpkgでインストールに成功・失敗したパッケージのまとめ library version OS result ceres 1.14.0-7 mac o boost 1.73.0 mac x (boost-python) g2o 2020-02-07 mac o gtest 1.10.0 mac o CMakeLists.txtでの設定についてはインストール後に表示されるメッセ…

Mac OSX: CMake with clang or gcc

デフォルトのコンパイラでclangが選ばれちゃう. シンボリックリンクの参照先をインストールしたgcc, g++に設定したものの,CMakeで選択されるデフォルトコンパイラはclangのままだった. 解決策はコンパイラの指定 コンパイラの指定を選択 コンパイラの指定…

Mac OSX セットアップ

from App store ソフトウェア 備考 Commander One Slack Xcode command line toolsのインストールだけでもOKっぽい Tag Editor Free ForkLift Dark modeなしファイルマネージャ from installer ソフトウェア 備考 Dropbox Office 365 Skype Sublime Text 3 t…

Control HTC Vive with C++

will add as soon as I tested those libraries. C++ libraries for HMDs OpenVR OpenXR OpenHMD C++ libraries for graphics Ogre3d

OvrVision Pro SDK

タイトル通り,Ovrvision ProのSDKを使ってみようという企画. 簡単にまとめると - SDKをダウンロードすればすぐ動く - 重要な説明が全く書いていないため,自分で新しくプロジェクトを作るのはほぼ不可能 - 買って失敗した UnityやUnreal Engineから使う,…

control HMD by C++

I just wanna show images and videos on an HMD, HTC Vive so far. To build as simple system as possible, I want C++ based development. Python is also fine. OpenVRC++ OpenXRC++ Ogre3dC++ library for graphics OpenHMD C++ for handling HMDs

CMakeLists.txt for GraphM library

Here's a CMakeLists.txt for GraphM library. [code lang="bash"] cmake_minimum_required(VERSION 2.8) set(PROJ_NAME graphm) project(${PROJ_NAME}) set C++ flags set(CMAKE_WARN_DEPRECATED ON) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -fPIC") …

ノンタイプテンプレートパラメータ

関数・クラステンプレートのテンプレートパラメータに型以外を使う時,そのパラメータはノンタイプテンプレートパラメータと呼ばれる. 一般的に定数の整数値(enumeratorを含む)や外部リンケージのオブジェクトへのポインタを使う. 浮動小数点数やクラス型…

templateの明示的インスタンス化 (explicit instantiation)

templateの明示的インスタンス化とは,宣言と定義が別ファイルに記述してある関数テンプレート・クラステンプレートを呼ぶ時に必要. コンパイラが関数テンプレートやクラステンプレートをインスタンス化する時,どのようなテンプレート引数でインスタンス化…

Eigen 3.2.9 compilation on Ubuntu 16.04

If you face a cmake error regarding GLUT_XMU_something, try the following installation and then retry the cmake compilation. sudo apt-get install libxmu-dev libxi-dev

show progressive percentile on the terminal

[code lang="c"] std::cout << std::fixed << std::setprecision(2) << std::setw(6) << "\b\b\b\b\b\b\b" << 100.0*ratio << "%" << std::flush; [/code]

OpenCV 3.1.0 on Ubuntu 14.04

cmakeのバージョンを3.1.3以上にする howto With QTのチェックを外す

関数ポインタと関数オブジェクト

関数ポインタと関数オブジェクトであれば,関数オブジェクトを使用した方が高速に動作する可能性があるそうだ. 原因は,関数オブジェクトではoperator()の呼び出しがinline化される一方で,関数ポインタが必ずinline化される保証がないからだそうだ.コンパ…

FLANN autotuned

I had a run time error when using flann::AutotunedIndex for a small set of 2d points (like 10-20 points). Possible solution is not to use flann::AutotunedIndex for such low dimensional data as mentioned here and here. The cause might be fl…

convert 2d vector to flann::Matrix

[code lang="cpp"] template <typename ValueType> flann::Matrix<ValueType> convertVector2Flann( const std::vector< std::vector< ValueType> >& v ) { size_t rows = v.size(); size_t cols = v[0].size(); size_t size = rows*cols; flann::Matrix<ValueType>m(new ValueType[size], rows, cols);</valuetype></valuetype></typename>…

convert Eigen::Matrix to flann::Matrix

The following functions convert (note the matrix size!!) a column-major NxM Eigen::Matrix to a row-major MxN flann::Matrix. a row-major NxM Eigen::Matrix to a row-major NxM flann::Matrix. [code lang="cpp"] template <typename ValueType> flann::Matrix<ValueType> convertEi</valuetype></typename>…

FLANN: sample code to try different search algorithms

[code lang="cpp"] include <iostream> include <string> include <vector> include <map> include <flann/flann.hpp> include <flann/io/hdf5.h> std::vector<flann::flann_algorithm_t> indexFlannAlgorithm = { flann::FLANN_INDEX_LINEAR, flann::FLANN_INDEX_KDTREE, flann::FLANN_INDEX_KMEANS, flann::FLANN_INDEX_C…</flann::flann_algorithm_t></flann/io/hdf5.h></flann/flann.hpp></map></vector></string></iostream>

FLANN

IndexParam: LinearIndexParams: 全探索(brute-force) KDTreeIndexParams: randomized kd-treesの集合をparallelに探索 treesの数は1-16が良い KMeansIndexParams: 階層k-means tree CompositeIndexParams: randomized kd-treeと階層k-meansの組み合わせ KDT…

CMakeLists.txt for FLANN example

http://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/dataset.hdf5 http://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/dataset.dat http://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/testset.dat [code lang="bash"] cmake_minimum_r…

FLANN installation on Ubuntu 14.04

http://www.cs.ubc.ca/research/flann/#download [code lang="bash"] sudo apt-get install libgtest-dev mkdir flann-1.8.4-build cd flann-1.8.4-build cmake ../flann-1.8.4-src make make install [/code]

CurveLab compilation on Ubuntu 14.04

Download the package from the official site. Note that the download requires user registration. Then, compile the package with the following command. make sure that FFTW was configured with ./configure --with-pic edit FFTW_DIR in makefile.…

FFTW installation

download fftw package from the official site and uncompress the file. Then, execute the following command to compile and install the package in the root directory of the uncompressed package. [code lang="bash"] ./configure make sudo make i…

Polynomial fitting by linear least squares

I made a repository of C++ code that runs polynomial fitting by linear least squares.

gflags with Visual Studio

Run CMake Run Visual Studio as a superuser Open gflags.sln with Visual Studio Batch build ALL_BUILD, INSTALL, and RUN_TESTS The result is as folllows: ------ Rebuild All started: Project: INSTALL, Configuration: Release x64 ------ -- Insta…

CMake + Visual Studio from command prompt

[code lang="bash"] cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug nmake [/code]

Windows: C++ programming environment

Visual Studio 2013 for Windows Desktop Jp|En Boost pre-built binary We can select the install directory, say BOOST_DIR. I chose boost_1_55_0-msvc-12.0-64.exe because msvc-12.0 means VS2013, my PC is 64bit, and my ubuntu PC uses 1.54 (the p…

C++ tensor library

Blitz++ code: http://sourceforge.net/projects/blitz/ rank: up to 11 type: dense operation: - slicing ITensor well-documented code: https://github.com/ITensor/ITensor rank: type: operation: BTAS code: https://github.com/BTAS/BTAS rank: any …