C++でターミナルに画像を表示させる

C++

これはC++ Advent Calendar 2013 23日目の記事です。 目的: sshでリモートに接続して計算を行い、その結果を図として得たい場合、 図をダウンロードするしかないのですが、 いちいちダウンロードして画像ビューアに移ってという過程を経ずに ターミナル上で…

fcitxにかえた

Linux Arch LinuxにてInput Methodをibusからfcitxに変えた。 基本的にはFcitx - ArchWikiの通りにやればいい。 ただし、 $gsettings set org.gnome.settings-daemon.plugins.keyboard active falseをやらなくてもいいと思い込んでいたためハマった。 これを…

CEANによる配列操作

はじめに これはC++ Advent Calendar 2012の21日目の記事です。 本当はスパコン環境でのC++とかODEintについて書こうかと思っていたのですが、時間がなくなってしまったので予定よりも軽めの内容にします。もしかしたらODEintについて追記するかもしれません…

PythonからFortranのサブルーチンを呼ぶ。

本題の前に どうやら日記放置しすぎたようですが、それはまあ気にしない。 今回のお題はPythonです。 最近Science with PythonというコミュニティがGoogle groupにできましてですね、Twitterでのハッシュタグは#sciwpyなんですが、せっかく参加したので科学…

あけまして

あけましておめでとうございます。 今年は辰年ということなので、dragonですよね。 というわけでdragonegg(http://dragonegg.llvm.org/)を使えるようにしてみました。 dragoneggとは dragoneggはGCCのプラグイン機能を使ってLLVMによる最適化をしようという…

多重forループを書きやすくしたい

C++

のでちょっと書いてみた。C++11限定でBoostが必要。 こんな風に使う。 #include <iostream> #include "feux/multiple_for.hpp" typedef std::pair<int,int> Range; int main() { const Range range1 = std::make_pair(0,3); const Range range2 = std::make_pair(0,3); const Ra</int,int></iostream>…

今日の「それC++11/Boostでできるよ!」

C++

http://blog.livedoor.jp/dankogai/archives/51761113.html経由で http://hirobanex.net/article/2011/12/1324792864を知ったわけですが、 こういうのって需要多いんですね。 これC++11なら標準ライブラリにあります。 C++11にまだ移行できない場合はBoostに…

C++ Advent Calendar 2011 18日目

C++

とりあえずPDFにしたところで力尽きたので公開。 ブログ形式には後で変えます。たぶん。 https://docs.google.com/open?id=0Bz3ia7nrCMfHY2EzZjdmNjItNGVhNy00NTM4LWEyY2MtMTYwMTczNjJhZTNmはてダよりLatexの方が慣れてるとかほんとブログ書く気ないなあ・・…

FortranでFizzBuzz

C++でfor文とか、FortranでDO文とか、使ったら負けです。 program fizzbuzz integer,parameter :: N = 20 integer :: i character(8),dimension(N) :: list write(list,'(I4)') (/(i,i=1,N)/) where(mod((/(i,i=1,N)/),3)==0) list="fizz" where(mod((/(i,i=…

数字混じり文字列のソートをBoost.Xpressiveで

元ネタはここ(http://ja.doukaku.org/295/)なんですが、 札幌C++勉強会で扱ったのでちょっとやってみる。方針は比較関数で文字列と数値に分けて、それぞれの場合で処理を分けてるだけ。 #include<iostream> #include<string> #include<vector> #include<fstream> #include<boost/lexical_cast.hpp> #include<boost/xpressive/xpressive.hpp> #include<boost/xpressive/regex_actions.hpp> str</boost/xpressive/regex_actions.hpp></boost/xpressive/xpressive.hpp></boost/lexical_cast.hpp></fstream></vector></string></iostream>…

iostream vs stdio

C++

結論としてiostream vs stdioではなく、ofstream vs fprintfの比較になってますもう過去に幾度と無くされてきた戦争な気がするのでドキュメントとして残す。iostreamはデフォルトでstdioより遅い。 ただし、http://homepage1.nifty.com/herumi/diary/0812.ht…

PLplotのexampleひどすww

PLplotのexample03があまりにもひどかった → https://plplot.svn.sourceforge.net/svnroot/plplot/trunk/examples/c++/x03.ccちなみにPLplotの使い方は https://sites.google.com/site/makeplplot/ がよくまとまっている。PLplot自体はいいライブラリだと思…

ぷよぷよの消去アルゴリズム

C++

元ネタ > http://okajima.air-nifty.com/b/2011/01/2011-ffac.html #include<iostream> #include<vector> #include<cstdio> #include<string> #include<valarray> typedef std::vector<std::vector<int> > Field; const int width=6; const std::string data = " GYRR" "RYYGYG" "GYGYRR" "RYGYRG" "YGYRYG" "GYRYRG" "YGYR</std::vector<int></valarray></string></cstdio></vector></iostream>…

optionalとbindとphoenix

C++

boost::optional::getをbindにかけたいと思っていろいろ試したメモ 結論はphoenix使え。以下いろいろ試したソース #include<iostream> #include<boost/optional.hpp> #include<boost/phoenix/phoenix.hpp> #include<boost/lambda/lambda.hpp> int main(const int argc,const char** argv) { using boost::phoenix::bind; using boost::phoenix::a</boost/lambda/lambda.hpp></boost/phoenix/phoenix.hpp></boost/optional.hpp></iostream>…

FortranプログラムをSConsでビルドする

前置き とある方からFortranソースコードを頂いて、ご丁寧にもMakefileまで付けてくれていたのですが、 まあMakefileなんてもう古いですよね。そこでmakeからSConsにビルドツールを変更しました。 SCons: A software construction tool - SConsビルドツール…

Fortranのmaxloc関数でハマった。

Fortranのmaxloc関数でハマった。maxlocとは 配列中のすべての要素,配列中の要素の組,または配列の指定された次元中の要素の最大値の位置を返します。 http://www.xlsoft.com/jp/products/intel/cvf/docs/vf-html/az/az08_09.htm という関数らしいので、便…

勾配・発散・回転のメモ

ただし直交座標系。写し間違いがあっても知りませんので注意。 grad div rot Jacobian Laplacian (h1,h2,h3) デカルト: (1,1,1) 円筒: (1,r,1) 極: (1,r,rsinθ)

流れ関数による速度の表式

流れ関数(stream function)をとすると、速度は と表されるんだけれども、うちらの分野では とか の方が覚えておくと便利っぽい。 ちなみに流れ関数でやると、非圧縮性流体での連続の式 が自動的に満たされるのです。

札幌C++勉強会 #2

7/3 札幌市産業振興センターで2回目となる札幌C++勉強会が開催されました。詳しくはこちらからhttps://sites.google.com/site/sapporocpp/benkyou-kai私はLTでBoost.Phoenixなんぞを話しましたけど、 まあ5分で話せるライブラリじゃないですね。皆さん結局…

OSC2011 Hokkaido参加レポート

OpenSourceConference2011 Hokkaidoに札幌C++勉強会として参加してきました。 ブースへの出展と、セミナー発表(講師は@hotwatermorningさんにお願い)です。 ブース出展では、無料とは思えぬ見事な小冊子を配布しておりました。 12:30頃には全部配布し終わっ…

Fortranの開発環境をWindowsで構築したときのメモ

コンパイラ(gfortran)のインストール 参考サイト: MinGW http://www.mingw.org/http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/から mingw-get-inst-20110316をダウンロードし実行 Select Componebtsまでデフォ…

CUDA4.0RCのインストールでつまづいた

CUDA4.0RCをインストールしてみた。インストール自体は通常どおりできたがSDKのサンプルプログラムのコンパイルに失敗する。 エラーメッセージは error: kernel launches from templates are not allowed in system files どうやらthrust関連のヘッダファイ…

Fedora14でCUDA3.2をインストール

CUDA3.2はFedora13までしかサポートしていない。 しかしソースに変更を加える必要があったが、Fedora14でも使えるようだ。SDKのコンパイルでは iomanipヘッダ、surface_function.hヘッダの修正と いくつかのファイルでshort abs(short)のdevice関数が 定義さ…

サーバにあるデータをローカルのgnuplotで描画する方法。

sshfsでmountすれば(ry(いろいろ事情があってそれはできないということで・・)リモートにあるデータをローカルに持ってきてgnuplotでグラフを描画するときは通常、 1. scp等でローカルにファイルをコピー 2. コピーしたファイルをgnuplotで表示 という2ステ…