2013年6月13日木曜日

boost::multiprecision 仮数部・指数部の取得

ドキュメントが足りてない感じで、理解するのに結構時間を要してしまったので備忘録。 長精度の整数型 cpp_int 、長精度の浮動小数点型 cpp_dec_float, 長精度の分数型 cpp_rational と大別して3タイプの型があり、精度指定ができるなど、それぞれのタイプも細かい設定ができるようになっています。そうすると、無数に型が作成可能な状態になり、爆発する型同士の組み合わせによる演算を、ひとつひとつ書いてたら大変な事になります。これを解決するために MPL を利用して型同士の種類で処理を分岐させています。 系統だって演算できるようにするための基本型が、number < BackendType, ExpressionTemplates > になり、BackendType が先の3タイプの型に相当します。 それぞれのタイプの型のメンバ関数にアクセスしたければ、number::backend() というメンバ関数をコールして、BackendType を取り出しアクセスする感じになります。 以下、サンプルです。
#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
#include <boost/multiprecision/cpp_dec_float.hpp>

using namespace boost::multiprecision;


int main() {
  number<cpp_int_backend<256, 256, signed_magnitude, unchecked, void> >  bi = 323456789012;
  number<cpp_dec_float<50> >  bf( "123456789012.3456" );

  std::cout << bi << std::endl;
  std::cout << bf << std::endl;

  bf = static_cast< number<cpp_dec_float<50> > >( bi );  
  
  std::cout << bf << std::endl;
  double   m;
  boost::int32_t  e;
  bf.backend().extract_parts(m,e);
  std::cout << "mantissa = " << m << ", exponent = " << e << std::endl;
  std::cout << "isint ? " << bf.backend().isint() << std::endl;
  return 0;
}

2013年6月7日金曜日

NEX-5R レビュー

 レビューと言っても、今まで、ちゃんとしたカメラ持ってなかったので、それから比べると「月とすっぽん」ぐらい違います。だから、比較となる対象が無いんです。カメラにはまってくると、APS-Cじゃなくてフルのカメラが欲しくなってきます。でも、このカメラ、ザックの上にポイと突っ込んで持ち歩けるし、軽いし、ものぐさな自分の性格に合っていて、手持ちでホイホイとブラケット撮影できるので気に入ってます。最初のうちは、カメラの使い方がわからなくて、シーン撮影を選択して喜んでました。でも、ちょっと慣れてくると、ここら辺は全く使っていません。というよりも、邪魔なのでメニューから消して欲しいぐらいです。こんな小細工しなくても十分に綺麗だと思ってます。おまかせオート機能も使っていません。ただし、1枚ものの撮影に、プレミアムおまかせオートを使用する事は多々あります。パノラマ撮影は、たまに使用します。状況に応じた計算をしやすいので、シャッタースピード優先と絞り優先のモードばかり使ってます。
 オートフォーカスですが、撮影してると微妙に違う部分にピントが合ってしまう事が多いので、DMFにて最終的なピント位置はマニュアル調整しています。自分は、風景写真が好きなので、オートフォーカスだけの打率で考えると、ピントが気に入らなくて捨てる写真が半分ぐらいはある感じです。フォーカスを自分で最終調整している関係上、フレキシブルスポットで、撮影する毎にモニタを押してターゲットの位置を変更してます。補助としてフォーカスされている部分を赤色に塗る機能はオンにしてます。撮影してる時は撮影だけに集中したいので、撮った写真が表示されると邪魔です。なので、撮影後の写真レビュー機能はオフにしてます。
 NEX-5Rを選んだ理由のうちのひとつは、Wifiでコントロールできるからで、色々とコントロールできるんじゃないかと楽観的に考えてました。そのために、中華PADも購入して、Root 取ってパケット・キャプチャもしました。Soap だったり、HTTP の Json だったりと、プロトコルに何を使ってるかぐらいまでは解析してみたんですが、RAWで保存してくれない作りっぽくて、ガッカリしてます。リモコンではブラケット撮影できないですし・・・。
 目下の不満は、リモコンでのブラケット撮影ができない部分でしょうか?AndroidにRAWデータを転送して表示しろなんて言いませんから、リモコンで5連とか7連のブラケット撮影モードが欲しいです〜(´;ω;`)。フォーカスは微調整を手でコントロールしているぐらいなので、強制オートフォーカスにされると使い物にならなくて困ります。

 まぁ、なんというか、すっかりHDRにはまって、± 2.0 ev のブラケット撮影を多用してます。そういう意味では、手振れ補正機能のオン・オフも簡単に変更できるようFnキーに割り当てられていると嬉しいかなぁ?














2013年6月6日木曜日

電子帝国時代

 久しぶりに、IT関連に関する雑感を書きます。  うちの会社ではGISを開発しているんですが、まぁ、いろいろと考えて、やってきても、帝国軍は全部根こそぎ持っていくんですわ。  今回、ESRI社のGISフォーラムに参加してきました。FOSS4Gとは対極にあるクローズドな会社だと思います。どこが凄いかというと、痒いところに手が届く、行き届いたサービスです。APPLEのデザイン力が素晴らしいのは周知の事実だと思いますが、ESRIのGISの機能は、柔軟かつ手数が少なく作業ができるようデザインされており、素晴らしいです。そんなESRI社の次なる動向を見て思ったのは、今まで隙間だと思っていた場所を埋め合わせるような新たな製品の投入。弱小企業が必死になって考えだしたビジネス領域を根こそぎ攫うかのような製品投入です。これだけじゃなく、ESRI社が強いのは、そのSIサポート体制と言えるかもしれません。市場開拓・育成・サポートまで一貫して行います。  Google Maps Engine 一般提供も視野に。Googleが B2B の細い分野まで侵食してくるとは思いませんでした。もうね、帝国軍レベルで隙間も注入されたら、どこにも余地ありませんわ。  今までのお客さんがいるので、簡単に辞められないですけど、もう会社たたんだ方が良いんじゃないかと思いますわ。うちの社員もSEのくせに GitHub ってなんですか?ってレベルだし、公開サイトにおいて、IE10やChrome でまともに動作しない状況について何の疑問も持たないセンスですしね。とうとうと、今 Chrome のシェアが一番でな、IEのバージョンも10の割合が増えてきてるんだよ、などと、アンテナベースの話からしなきゃならないとか、戦える気がしないですわ。  Apple が取り沙汰されるようになってから、Google も変わりましたよね?スペックや性能について、あまり語らなくなったと思いませんか?もちろん Google はオープンな企業で、特に隠し立てをしているという事は無いんですが・・・。  クリス・アンダーソンさんのFREEもどうなんでしょう?Makerでは、販売価格は製造原価の3倍で良いとか書いてるじゃないですか、労働コストの手間賃が含まれてるんですよ。なのに、ソフトウェアとコンテンツはFREEなんです。なんで、こうなってしまうのか?クラウドですよ。クラウドは便利ですが、胴元ビジネスなんです。ショバ代を徴収してテラ銭跳ねて、軌道に乗れば絶対に損しないビジネスなんです。ただし、ライバルに出し抜かれない限りは。みんな必死で進軍をやめるわけないですよね?電子帝国時代の到来です。  電子帝国時代に突入して若干空気が変わったと感じる事があります。ビジネス化するつもりのアイディアは口外せずに粛々と進めて、一挙に公開するとか、そんなんが増えてきているのかなぁと…。ま、特に根拠があるわけじゃないです。トップ・インタビューを読んでても、技術的・直接的な表現が減って、オブラートに包んだコンセプト的なものが増えてるような気がしてます。そういう意味じゃ、日本のメディアが日本の強みは、どこどこで、とか全部ノウハウに相当する部分を細かく分析して図表まで書いて披露するのは、へぇ~かもしれませんが、電子帝国時代にはマイナスなのかなぁと思う事もあります。トップの方も、技術的なノウハウに相当する暴露は控えて、テイストとか人間の感性に訴える部分に置き換えて表現した方が良いんじゃないでしょうか?  オープンソースもね。それで食ってくの辛いですよ。労働コストに対して「でも、お高いんでしょ?」の一言で片付けられてしまうような側面を持ってるんですよ。サラリーマン・タイプの人は、自分の職業で自分が働いた対価に対して経営層が、なんかお金に変えて賃金払ってくれるから、自分の労働コストに対しては厳しく文句言うくせに、他人の労働コストに対しては、平気で高いとか言うんですわ。君の給料は、どこからきてると思っているのか?もうちょっと、労働対価に関する価値観を教育していかないと、電子帝国時代は厳しい世界になるんじゃない?そんな風に感じてます。  あまり技術的な話を書くとね、帝国軍にサルベージされて持ってかれそうで嫌なんですけど。クラウドの次は、真の分散が来るんじゃないかと。そうでもしないと、胴元ビジネスの帝国主義は打破できないんじゃないかと。フォッグ・コンピューティングなる言葉があります。意味合いが若干異なりますが、自分も同じような事を考えていました。ジャンルは NoSQLに近いです。NoSQLの世界では、耐故障性能を上げるためにノード間でレプリケーションするやないですか?それって、見ず知らずのデータベース間でもスキーマが同じなら、データ交換が技術的には可能ですよね?て事はですよ?NFCとか使ってスレ違いざまにデータ交換できますよね?東北大震災の時に被災地のデータを人々がスレ違いざまにデータ交換して、自己組織化のようにデータが伝搬していく。クラウド無しでも行けると思いませんか?と、こんな事も考えてるんですが、自分とこではリソースをさく事態にならないと思うんで、面白いと思った人に託しますね。