2010-01-01から1年間の記事一覧

STL非互換コンテナのRange

この記事はC++ Advent Calendar jp 2010 : ATNDの参加記事です軽い気持ちでAdvent Calenderに参加してしまった事を若干後悔しながら この記事を書いておりますが、なにぶん僕はそんな変態プログラミングが出来るわけでもないですし、変態じゃないですし、 そ…

札幌C++勉強会のグループを作成しました。

札幌でのC++erのコミュニティーとして札幌C++勉強会を作成しました。 当面は、大きな目標として来年5月の勉強会(Boost.勉強会かも)に向けて運営していきたい思っております。 興味がありましたらぜひご参加くださいませませ。 Google グループ

Boost.忘年会2010@sapporoを開催しました!

このエントリーで紹介したBoost.忘年会を開催しました。 会場は大通りにあるリストランテ ZENZEROと言うところで、個室が若干狭く感じましたが、6名なので全員が顔を合わせて話せるということでそんなに問題はなかったかなと思います。 ドタキャンが無かった…

wavファイル再生速度変更

PlaySpeedTest.zip - Google ドライブ 以前ちらっとプレビューしたアプリです。(未完成) PortAudioのDLL無いと動かないと思います。あれって再配布していいんでしょうか? LPFのタップ数変えると落ちるかも。 ピッチシフトかけるとリバーブ掛かっちゃいます、…

Galaxy Sの標準ブラウザのアップロードするファイルの制限

Galaxy Sに最初から入っている標準ブラウザさんはアップロード出来るファイルに制限があって、画像や音楽しか選択できないので、そんな人はOpera miniとか入れたら幸せになれるらしい。他のAndroid携帯のことは存じませんが。

大浦先生のFFTライブラリではまった件

Ooura's Mathematical Software Packages 高速なFFTライブラリとして有名な大浦先生版FFTを使ってみたのですが。こちらにあるように 一般的なFFT(DFT)と比べ虚数部の符号が逆になっている。 だそうで。パワースペクトル出すだけのプログラムとかなら意識する…

"-->" これなんて演算子?

C++

http://efreedom.com/Question/1-1642028/Name-Operator こういう書き方好きです。

const配列をTMPで初期化して参照テーブル云々、失敗

const配列をTemplate Meta Programmingで初期化して参照テーブルにしたかった。 template<int N> struct table { static const int value[N]; }; template<int N> const int table<N>::value[N] = /*???*/; int foo(int n) { return table<10>::value[n]; } みたいなことがで</n></int></int>…

値(あたい)「値るの!」

前回の記事はわざわざ POD型用と、そうじゃない型用に2種類作らなくてもboost::call_traitsを使えばいいのですね。参照:letsboost::call_traitsあ、タイトルはこちらから。追記:boost::call_traitsは引数のテンプレート型を型推論出来ないそうで、引数には使…

負の整数での除算と剰余を指定した挙動で

C++

C++03では、左右両方のオペランドが正でないときは/や%の挙動が実装依存になるので、指定した挙動での除算と剰余を求める関数(+alpha)を作ってる。hwm/arithmetic.hpp #ifndef HWM_ARITHMETIC_HPP #define HWM_ARITHMETIC_HPP #include <cmath> #include <boost/assert.hpp> #include <boost/mpl/and.hpp></boost/mpl/and.hpp></boost/assert.hpp></cmath>…

Deep Copyを行うポインタ

C++

深いコピーを行うポインタ。 使うかどうか分かんないけど、参考にしたソースの通り、pimplには使えるかも。深いコピーに合わせて深い比較(deep comparison)も行います。 型はCopyConstructibleで。完全型云々辺りはよく分からないのでもう少し調べてみよう。…

仕事の効率を上げるためにプログラマがするべきたった一つのこと

仕事の効率を上げるためにプログラマがするべきたった一つのこと みなさんはどうしても気分が乗らない、調子が出ない、やる気が起きない、そして、コーディングが進まない、 そんな日はありませんか?

hokkaido.pm#3に行ってきた。

hokkaido.pm#3に行ってきた。前は#1に参加したのでこれでhokkaido.pmには2回目の参加(#0も含めれば3回目になるか)今回は初心者向けセッション中心ということで、普段からPerl触っているわけじゃないので全然上達しない僕にしてみればとてもありがたい内容で…

Boost.忘年会を札幌でも開催することになりました。

Boost.忘年会2010@sapporo : ATND http://sites.google.com/site/boostjp/study_meeting/year_end_party2010_at_sapporo 参加者募集中です。事の発端は... window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.tw…

"birds"/坂本真綾 耳コピった。

坂本真綾のイージーリスニングの最後のトラック。 カラオケで気持よく歌える感じで好きな曲です。ちょっとした書き間違いとか、 甚大なコピ間違いとかあるかも。 あと、「このCはAmなんじゃねぇの?」とか 「こいつwwwここ間違えてやがるwwwワロスww…

DSP勉強中

こんな動画があったりして、 あの蝿たちはエイリアスでも起きてんのか??とか知りませんが、DSP勉強中で こんなものを作ったので、↑の動画みたいに音変えてみようと。はい。 高くすると こんな感じ。 うん、いい感じに胡散臭い。 ちょっとだけ高くしたもの …

曲うp

DTM

大学でDTMサークルやったりして曲を作っているので、myspaceアカウントを作って曲をうpした。 hotwatermorning | Listen and Stream Free Music, Albums, New Releases, Photos, Videos どうにもmyspaceってごちゃごちゃしてて好きにはなれないけど...

平坦性問題

携帯が壊れたので、いっそのことつるぺたスマートなやつにした。 小ぶりだが形のいい膨らみ(注:ボタン)や、ささやかに主張する突起(注:ボタン)もないので入力がずれる。

呼出をトレースして実行時間を取る

Boost.ChronoでTrace - Faith and Brave - C++で遊ぼう chronoがライブラリにまだ入っていないので導入はちょっと・・・ ということで作った。 車輪の再発明臭いけど気にしない。elapsed_time.hpp #pragma once #include <algorithm> #include <boost/current_function.hpp> #include <boost/format.hpp> #include <boost/function.hpp> #in</boost/function.hpp></boost/format.hpp></boost/current_function.hpp></algorithm>…

Intelコンパイラ(11.1.048)でPSTADE_OVEN_FOREACHが使えなかった

msvc9.0で書いてたコードをicl11.1でコンパイルしてみようとしたら、 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = …

離散フーリエ変換時の補完とか

dsp

頭こんがらがります。 時間領域 周波数領域 ブロック全体の最後に0詰め 周波数補完 サンプル補完 ナイキスト周波数の辺りに0詰め サンプルごとに0詰め サンプリングレート変換(折り返しあり) ブロック繰り返し 周波数ごとに0詰め

コンパイラ屋さんが頑張っています。boost屋さんも頑張っています

#include <iostream> #include <boost/preprocessor/repetition/repeat.hpp> #include <boost/preprocessor/arithmetic/add.hpp> #include <boost/preprocessor/cat.hpp> #include <boost/preprocessor/stringize.hpp> #define TEST_MAX 229 #define MAX_CLASS BOOST_PP_CAT(A, TEST_MAX) struct MAX_CLASS; struct A0 { st…</boost/preprocessor/stringize.hpp></boost/preprocessor/cat.hpp></boost/preprocessor/arithmetic/add.hpp></boost/preprocessor/repetition/repeat.hpp></iostream>

removedアダプタ

Boost.Filesystem v3調べ物メモ - Faith and Brave - C++で遊ぼう removedアダプタは僕も欲しいかも・・・! #ifndef HWM_REMOVED_HPP_ #define HWM_REMOVED_HPP_ #include <pstade/oven/detail/base_to_adaptor.hpp> #include <pstade/oven/detail/filter_iterator.hpp> #include <pstade/result_of.hpp> #include <pstade/oven/range_value.hpp> #i…</pstade/oven/range_value.hpp></pstade/result_of.hpp></pstade/oven/detail/filter_iterator.hpp></pstade/oven/detail/base_to_adaptor.hpp>

enumerate Rangeアダプタがすっきりした

前々回、こんなのを作ったけど、any_rangeを使ったりしてなんだか汚い感じでしたし、 counting rangeのDifferenceかなんかの型がmsvcでwarning:4244を出したりして微妙だったので改良を。 #ifndef HWM_ENUMERATE_HPP_ #define HWM_ENUMERATE_HPP_ #include <pstade/result_of.hpp> </pstade/result_of.hpp>…

演算子の優先順位、Range

オウフ・・・ using namespace pstade::oven; int v[] = { 1, 2, 3, 4, 5, 6, 7 }; int a = 4; BOOST_AUTO(it, find(v, a)); return (it == v|end) ? *it : -1; なんか通らない通らない、何がおかしいのやらってよくわかんないけどどうしたもんだって思っていたら…

OvenでPythonで言うところのenumerate関数を作る。(何番煎じ?)

enumerate.hpp #ifndef HWM_ENUMERATE_HPP_ #define HWM_ENUMERATE_HPP_ #include <boost/tuple/tuple.hpp> #include <pstade/pass_by.hpp> #include <pstade/result_of.hpp> #include <pstade/oven/any_range.hpp> #include <pstade/oven/counting.hpp> #include <pstade/oven/distance.hpp> #include </pstade/oven/distance.hpp></pstade/oven/counting.hpp></pstade/oven/any_range.hpp></pstade/result_of.hpp></pstade/pass_by.hpp></boost/tuple/tuple.hpp>

円周率

ぼーーーー( ゚ ρ ゚ ) #include <pstade/oven/generation.hpp> #include <pstade/oven/algorithm.hpp> #include <pstade/oven/regular.hpp> #include <cmath> #include <cstdio> struct generator { typedef double result_type; result_type operator()() const { a_ += 1.0; return a_; } generator() : a_(0.) {} private: mut…</cstdio></cmath></pstade/oven/regular.hpp></pstade/oven/algorithm.hpp></pstade/oven/generation.hpp>

0と1を次々と返すC++のコード

C++

0と1を次々返す方法 - When it’s ready. C++らしく書けばこうかな #include <iostream> struct switcher { switcher(bool p = true) : p_(!p) {} operator bool() { return p_ = !p_; } private: bool p_; }; int main() { switcher sw; std::cout << sw << std::endl;</iostream>…

Perl練習、再帰とファイルシステムの扱い

カレントディレクトリ以下からC++のソース、ヘッダを見つけて列挙 use strict; sub FindFile { my ($dir, $pred, $operator) = @_; my @list = (); opendir(DIR, $dir) or die("Can not open directory : $dir ($!)"); @list = readdir(DIR); closedir(DIR);…

Perlのクラスメンバの配列変数

メモ。 Perlでクラスを作ったときに配列のメンバ変数を持ちたい時。 my $self = { arr_ => [@list] }; でハッシュに入れて foreach (@{ $self->{arr_} }) { print $_ . "\n"; } みたいにして使う。[]で配列の無名リファレンスを作ってスカラに代入、 @{}で配…