In Silico 創薬 このブログサイトは、In silico創薬に関連する研究論文やソフトウェア・ツールの利用やプログラミングなどについてご紹介しています。 前回のブログではEigenを利用したベクトルと行列の基本的な使い方についてまとめました。今回は線型方程式や固有値問題の解を求めるEigenの利用方法についてまとめます。この応用編についても自分用の備忘録としてまとめたものになります。 LU分解など LU分解とはある正方行列Aを下三角行列Lと上三角行列Uの積に分解(つまりA=LU)することです。ここでは詳しく解説しませんが、WEB検索すると山ほど詳しい記事がヒットするはずです。LU分解すると、連立一次方程式が解くことが出来たり、行列式が計算できます。あとEigenでは逆行列の計算も出来ます。もっとも、逆行列を陽に計算するような場面に出くわすことなど無いでしょう。数値計算のプログラミン
#include “Eigen/Core” #include “Eigen/LU” Eigen::MatrixXd A(3,3); A << 1,1,1, 1,2,1, 1,2,3; cout <<"A = " << endl << A << endl; Eigen::VectorXd b(3); b << 5,3,8; cout <<"b = " << endl << b << endl; Eigen::VectorXd x = A.fullPivLu().solve(b); cout <<"x = " << endl << x << endl; 出力結果 A = 1 1 1 1 2 1 1 2 3 b = 5 3 8 x = 4.5 -2 2.5
COM/ActiveXの解説を順に書いていきます。 COMの背景知識 プログラムの実行環境 プログラムの実行処理 COMの関連知識 インターフェースと実装 ファクトリクラス 参照カウント ゼロからのCOM COMの目的とその仕組み クラスの作成とその利用 IUnknownとその実装 クラス機能の実装 class object DLL利用状態の管理 DLLサーバの自己登録 DLLサーバのビルド DLLサーバの動作確認 EXEサーバ DLLとEXEの違い メソッド呼び出し サーバ処理の流れ コマンドラインの解析 EXEサーバ利用状態の管理 class objectの登録 クラスのビルドと動作確認 オートメーションサーバ スクリプト言語への対応方法 クライアントの実装 IDispatchインターフェース メソッド呼び出しの実装 デュアルインターフェース C++とスクリプト言語の両立 MIDL タ
はじめに WinRT (Windowsランタイム) API は Windows 8 以降で実装されている新しいAPIです。 モダンUIになっていて、Win32APIでサポートされていなかった様々な機能が使えるようにもなっています。 ↓UIに関していえば、メッセージボックス一つとってもこの違い。(上: WinRT, 下: Win32APIベース (MessageBox.Show())) しかし、WinRTはUWP (Universal Windows Platform) 向け(いわゆるストアアプリ用)な節があるものの、実際にはUWPだと実装しにくい機能も多く、普通のWindowsデスクトップアプリ (WPFなど) からWinRTの機能を「つまみ食い」したいこともあると思います。 C++/WinRTを介して呼び出せる C++/WinRTでライブラリを作成し、それをC#側から参照することによって
はじめに Webアプリケーションに対してある種の繰り返しの操作を行ったり、定型処理を定期的に自動実行したい場合がよくあります。 大きくわけてWebアプリケーションの自動化には3種類のやり方が存在します。 1つ目はブラウザのGUI上の操作をプログラム上で真似して自動化する方法 2つ目はブラウザから送信しているデータを真似する方法 3つ目はWebアプリケーションが提供しているAPIを利用する方法 1つ目のブラウザのGUI上の操作をプログラム上で真似して自動化する方法は直観的にわかりやすいと言われますが、実際は最も難しい自動化の方法になります。また、アプリケーションのバージョンアップに伴い自動化用のプログラムが動作しなくなる可能性があります。 2つ目のブラウザから送信しているデータを真似する方法はプログラムで実装しやすいやり方ではありますが、Webアプリケーションがどのようなデータを送信している
はじめに 昨今、常時SSL化の流れや、無料で利用することもでき、個人のサイトやブログでもSSLを導入している場合が多いでしょう。 本記事に於いて、SSLとTLSの厳密な違いについては本質ではないため、暗号化通信ということで同じ意味で記載しています。 違いが気になる方は、調べて下さい。 ブラウザの通信は暗号化通信(SSLというかTLS)を使用している場合、通常は中身を見ることができません。 今回はWiresharkを使用して、ブラウザの通信の中身を、リアルタイムで見てみます。 暗号化されている通信も、復号化して確認することができます。 WiresharkはGUIのツールですが、コマンドラインベースのTsharkも付属しており、それを使用すると例えば自作のプログラムから呼び出すといったこともできます。
研究でVisual C++を書くうちに、そういえばリンカとかライブラリの仕組みを理解していなかったな、と思ったので色々調べてみました。 書きやすいからという理由で説明口調の文章にしていますが、多分に間違いを含む可能性があります!(オイ) 気付いた部分があればコメントしていただけるとありがたいです。 ※ 2018/12/01 : #pragma once周りを追記しました ※ 2018/12/23 : ライブラリを使うためのビルド設定の話を追記しました スポンサーリンク もくじ 1. ビルドとは 2. C/C++のビルドの仕組み 2.1. プリプロセッサ 2.2. コンパイラ 2.3. アセンブラ 2.4. リンカ 3. ライブラリの種類と仕組み 3.1. ソースコードを配布 3.2. 静的リンク(static linking) 3.3. 動的リンク(dynamic linking) 3.4
何かプロジェクトを作成しようとするさいに、インターネットで同じような機能をもったツールを検索するということは当たり前に行われていると思います。 そう簡単に見つかることは多くありませんが、オープンソースなどで公開されていることもあります。 その際にDLLファイルだけをダウンロードできた。なんてことも…。 そんなときにDLLファイルにどんな関数が含まれているか調べたくなることがあります。 実はVisual Studioに含まれる「Visual Studio 用開発者コマンド プロンプト」で簡単に調べることができます。 Visual Studio 用開発者コマンド プロンプトを起動させよう Visual Studioが導入されていればスタートメニューから簡単に起動させることができます。 キーボードのWindows ロゴキー、もしくは画面左下のWindows ロゴをクリックし[スタート]メニューを
はじめに RustでCLIツールを作る際にターミナル等のwindow size変更に応じて表示を変更したい場合がある。 その際に画面サイズの取得について調査したログ。 はじめに 画面サイズの取得 調査ログ 画面サイズの取得 画面サイズの取得には、libcのioctlを利用し、TIOCGWINSZをシステムコールする。 Cargo.tomlにはlibcを追記する。 [dependencies] libc = "0.2" ioctlにはファイルディスクリプタを渡す必要があり、libc::STDOUT_FILENOが使えるが、アプリケーション側にSIGWINCHが上手く送られない場合(CLIツール等を作成している場合)に、Terminalを制御するウィンドウのサイズ変更に動的に対応できない。そのため"/dev/tty"を読む方法も用意する。 use libc::{ioctl, winsize,
Reading Time: 3 minutes GPU アプリケーションを高速化する方法には、主にコンパイラ指示行、プログラミング言語、ライブラリの 3 つがあります。OpenACC などは指示行ベースのプログラミング モデルで、コードをスムーズに GPU に移植し、高速化することができます。使い方は簡単ですが、特定のシナリオでは最適なパフォーマンスが得られない場合があります。 CUDA C や C++ などのプログラミング言語は、アプリケーションを高速化する際に、より大きな柔軟性を与えてくれます。しかし、最新のハードウェアで最適なパフォーマンスを実現するために、新しいハードウェア機能を活用したコードを書くことも、ユーザーの責任です。そこで、そのギャップを埋めるのが、ライブラリです。 コードの再利用性を高めるだけでなく、NVIDIA 数学ライブラリは、最大の性能向上のために GPU ハード
If you're already somewhat familiar with promises, here are some shortcuts to save you some precious scrolling time. Introduction When writing JavaScript, we often have to deal with tasks that rely on other tasks! Let's say that we want to get an image, compress it, apply a filter, and save it 📸 The very first thing we need to do, is get the image that we want to edit. A getImage function can tak
はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム この本には一冊の本に盛り込むにはやや欲張りな内容を詰め込みました。本書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 この本では、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを本書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう
Xenos is a virtual instrument plug-in that implements and extends the Dynamic Stochastic Synthesis (DSS) algorithm invented by Iannis Xenakis. Programmed in C++ with the JUCE framework, Xenos is open-source, cross-platform, and can be built in a number of plug-in formats. Key features include: Authentic DSS engine Xenharmonic pitch quantizer Custom scale import in the Scala format Ten stochastic d
main.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <main>: int main(void) { 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp int a = 1; 4: c7 45 f4 01 00 00 00 movl $0x1,-0xc(%rbp) int b = 2; b: c7 45 f8 02 00 00 00 movl $0x2,-0x8(%rbp) int c = a + b; 12: 8b 55 f4 mov -0xc(%rbp),%edx 15: 8b 45 f8 mov -0x8(%rbp),%eax 18: 01 d0 add %edx,%eax 1a: 89 45 fc mov %eax,-0x4(%rbp) ret
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く