憂鬱な午後のひととき
・筑波大学へ. いや~, 遠かった.
想定外で3年ほど前に沖縄のSWoPPでニアミスしていた方と再開(じゃなくて初対面, でも一緒に仕事したことが...).
世の中狭い.
・↓3 直ったかも.
・『心の中にもっている問題』(長田弘)
"仕事は, 為事(しごと)だ. 仕えることではなく, 為す事なのだ." ほほう.
・疲れたので今日は寝ます. ああ, 明後日締め切りの原稿が... ごめんなさい.
・初心者向けプレゼン作成.
・IEEE1394なHDDしか使ってなかったので気がつかなかったが, USB2.0を認識しない.
前は確かに動いていたのでSP2を当てて以来かなあ. ドライバ再インストールしても駄目だし困った.
友達と近所のハイキングとサイクリング. あと一人で度胸試し(?). 心配した天気も問題なし.
いつもはセカセカ通っている道をゆっくり行くのもよいもんだ.
心地よい疲れで早く寝られそう.
怖かった道再度. 今回は懐中電灯を持って行ったので安心.
でも満月だったので, 電灯をつけなくても道が見えた. 月明かりは偉大だ. 前回は新月やったからなあ.
ああ, まだ駄目みたい. でもやる気無し. 外は凄い風.
↓
3 これは間違いらしい. alg_relationsじゃなくてGの方にいれないといかん.
で, 自分のコードも直してみた. ちゃんと出るようになった. めでたし.
input polynomials are:
G[0]=abcdef
G[1]=abcde + bcdef
G[2]=abcd + bcde + cdef
G[3]=abc + bcd + cde + def
G[4]=ab + bc + cd + de + ef
computing Groebner basis.
result:
G[0]=cd
G[1]=ab + bc + de + ef
G[2]=def
G[3]=cef + bc
G[4]=bef + ef
G[5]=aef + bc + ef
G[6]=bcf + bc
G[7]=bde + de
G[8]=ade + de
G[9]=bce + bc
集中力が切れた. 何もできず. 夕方12kmほど走る. いい具合に疲れたのですぐ寝よっと.
残り作業は明日電車の中で...
1カ月ちょい前に行使したストックオプションがみるみる内に半額に. 行使額割れしそうな勢い.
「(株は)光成さんには向かないんだから, さっさと売ればいい」と言われてたけど,
ずるずると下がってたんで機会を逸した. うー, 引っ越し費用にしようと思ってたのに...
しかし, 礼金っていったいなんだ. 大学のときはそんなんなかったぞ.
・今日も余暇プログラミングはおやすみ. Mapleでチェックだけ. なんや, あってるやん.
ここまでで, のべ20時間弱. 意外と早かった. しかし, 例によって例のごとく,
設計もクラス関係も何も考えずにおもむろにヘッダをかき始める開発スタイル.
一時期勉強したUMLが全く活かされてない(^^;. unittestだけはやってるけど.
さてこれから論文読んで高速なアルゴリズムを作らなきゃ.
with(Ore_algebra):
A:=poly_algebra(a,b,c,d,e,f,g,h,
alg_relations={a^2+a,b^2+b,c^2+c,d^2+d,e^2+e,f^2+f},
characteristic=2);
with(Groebner):
T:=termorder(A,tdeg(a,b,c,d,e,f,g,h)):
G:=[a*b*c*d*e*f,
a*b*c*d*e + b*c*d*e*f,
a*b*c*d + b*c*d*e + c*d*e*f,
a*b*c + b*c*d + c*d*e + d*e*f,
a*b + b*c + c*d + d*e + e*f];
gbasis(G,T);
結果
G:=[abcdef, abcde + bcdef, abcd + bcde + cdef,
abc + bcd + cde + def, ab + bc + cd + de + ef]
>[cd, ab + bc + de + ef, def, cef + bc, cfb + bc, ebc + bc]
・『谷崎潤一郎随筆集』(篠田一士編)
「懶惰の説」"懶惰"(らいだ)は怠けるという意味だそうな. 本当は"りっしん偏"に"頼"という字(らん)らしいが出てこない.
私はひなたぼっこで寝て本を読むのが一番好き.
「私の見た大阪及び大阪人」
著者の独断と偏見振り(?)が面白い. 清水義範の『蕎麦ときしめん』みたいなのり,
って比較するもんでも無いか.
・『タリファの子守歌』『アフナスの貴石』(野尻抱介)
シリーズもの続き. 前者はもう少しシリアス路線でやってほしかった. ドタバタ劇としては
前作より弱い.
EJが出てくるのは意表をつかれたし, 十分笑わせてもらったけど. 後者は不在の主人公がテーマ.
爽快感が無かったのと, ラストのアフナサイトの挙動はワケワカメでいまいち.
今(1:00)から25日用資料のお手伝い開始. 別件の24日と29日のは手つかず...
どこか間違ってるらしい.
input polynomials.
type .(period) if you want to stop.
abcdef
G[0]=abcdef
abcde+bcdef
G[1]=abcde + bcdef
abcd+bcde+cdef
G[2]=abcd + bcde + cdef
abc+bcd+cde+def
G[3]=abc + bcd + cde + def
ab+bc+cd+de+ef
G[4]=ab + bc + cd + de + ef
.
input end.
computing Groebner basis.
add poly:acde + acef + adef + cde + def
add poly:acef + adef + acd + def + cd
add poly:def
add poly:cde + cd
add poly:cef + bc
add poly:cd
add poly:bcf + bc
result:
G[0]=cd
G[1]=ab + bc + de + ef
G[2]=def
G[3]=cef + bc
G[4]=bcf + bc
G[5]=bce + bc
・スレッド立ちまくり. デッドエンドが接近しすぎ. 必然的に睡眠時間や読書時間が削られる. 悲しい.
・電車の中で余暇プログラミング6日目. 多項式の集合はlistにすべきか, vectorか.
・初めてのマニピュレータ(manipulator). iosteam周りは食わず嫌いで勉強しなかったのだけど, 結構面白い.
F2poly f;
istr >> asALPHABET >> f;
cout << "f=" << f << endl;
cout << asMAPLE << f << endl;
cout << asSIMPLE << f << endl;
cout << asALPHABET << f << endl;
x[1] * x[2] * x[4] * x[5] * x[6] + x[1] * x[2] * x[4]
+ x[1] * x[16] * x[19] + x[5] + 1
(1, 2, 4, 5, 6) + (1, 2, 4) + (1, 16, 19) + (5) + 1
abdef + abd + aps + e + 1
・あ, ちゃんと仕事はしてるぞ. 今週は(独自のずぼら形式)動画受信再生部 for Win/Linux 開発開始. 昨日, アルファ版が動きだした.
Win <-> Linux間でデータ再生しあって, ちょっと自己満足.
UDP使うの初めて. LinuxとWindowsってバッファの管理の挙動がちゃうみたいで手間取った.
・↓動いてないのは私の頭だった. ははは. 勘違いとはいえ, いくつかかっちょ悪い部分があるので修正しよう.
朝4時半ごろ起きる. ずっとプログラミング. 16時間過ぎたあたりでランナーズハイならぬコーディングハイが.
『使いすぎ』の記事を見ると何かやだぞ.
余暇プログラミングは今日は無し.
今さっき気がついたけど, タイムカプセル暗号のサンプルプログラムが,
うまく動かなくなっちゃってる. なぜ? 週末直さなきゃ.
23時前まで仕事プログラミング.
お風呂入って休憩してから余暇プログラミング5日目.
割り算とBuchberger判定法.
出力結果の真偽は未確認(Reduceとかはしてない).
もう12時過ぎだ. 寝なきゃ. ところで, 東京の銭湯は400円もする. 高いぞ.
cout << "F is {" << endl;
for (int i = 0; i < F.size(); i++) {
cout << " F[" << i << "]=" << F[i] << "," << endl;
}
cout << "}" << endl;
cout << "F " << (F2poly::isGbase(F) ? "is" : "isn't")
<< " Groebner basis" << endl;
cout << "make Groebner basis" << endl;
F2poly::makeGbaseBy(F);
...
F is {
F[0]=x[2] * x[3] * x[7] + x[1] * x[2],
F[1]=x[3] * x[5] + 1,
F[2]=x[4],
}
F isn't Groebner basis
make Groebner basis
F is {
F[0]=x[2] * x[3] * x[7] + x[1] * x[2],
F[1]=x[3] * x[5] + 1,
F[2]=x[4],
F[3]=x[1] * x[2] * x[5] + x[2] * x[7],
F[4]=x[1] * x[2] + x[2] * x[7],
F[5]=x[2] * x[5] * x[7] + x[2] * x[7],
}
F is Groebner basis
・余暇プログラミング4日目. 時間をとれなくてS多項式まで.
こんな感じ.
F2poly f, g;
std::cout << "input f:"; std::cin >> f;
std::cout << "input g:"; std::cin >> g;
std::cout << "S(" << f << ", " << g << ") = "
<< F2poly::getSpoly(f, g) << std::endl;
出力(mod F
2, mod X
i^2 - X
i)はこう.
input f: (2,3)+(1,4)+(1,2,4)+1
input g: (4,2,3)+(2,3)+(2,4)
S(x[1] * x[2] * x[4] + x[2] * x[3] + x[1] * x[4] + 1,
x[2] * x[3] * x[4] + x[2] * x[3] + x[2] * x[4])
= x[1] * x[2] * x[3] + x[1] * x[2] * x[4]
+ x[1] * x[3] * x[4] + x[2] * x[3] + x[3]
あってんのかな.
・わりとよさそうな物件があった.ちょっと高いけどしかたないかなあ.
余暇プログラミング3日目.
とりあえず, 足し算と掛け算, それに<<と>>はできたつもり. 明日は割り算を.
いつもより若干ペースをあげて7.5km/30min.でも体重減らない...
・お金を下ろそうと思って, うっかり間違えてキャッシングでお金を借りてしまった.
慌てて返却しようとしたけど, その機械ではできなくて,
月曜日に有人のATMまで行かないといけないという.
もうちょっと警告表示が出てもいいと思うし(せめて○○だけ利子がつきますとか表示がでれば気づきやすい),
その場で返却できないシステムってユーザインタフェース的に問題だろうと思う.
しかも, その間も利子(目茶苦茶高い!!!)がつくなんてだまされた感じ.
・知人の結婚式の二次会に参加. 同窓会っぽい雰囲気だった. どもおめでと.
・『幸福な遊戯』(角田光代)
表題作, 不安定な中にたまたま現れた局所的な安定点がずっと続いてほしい. それが壊れるときの「私」の叫びが痛々しい.
不健康なんだろうけど自分もあるなあと共鳴してしまう.
いつもは明るいときに走るコースを夕方5時過ぎに走ってみた.
日没直後, どんどん暗くなって最後は数m先(というか足元の水たまりすら)も見えなくなってしまった.
危ない, 危ない. 360度どこにも光がないと流石に恐怖心がでる.
まじったなあ, と思いながらしばらく摺り足で進んで灯が見えたときはほっとした.
・疲れた. むぱ.
・とりあえずbusy loopで実装したのだけど, 肝心の使いたいシステムコールがmsecオーダーであることが発覚.
しもた.
・「自衛隊が活動している地域は非戦闘地域」
あほか. なら世界中に自衛隊を派遣すればいい.
そうすればどこにも戦争が無くなって首相はノーベル平和賞もらえる.
というか, 英語とか奉仕とか愛国心とかの前に論理を勉強する必要があるんじゃないの.
・micro secオーダーのCPU待ちがしたいのだけど, たとえばLinuxならnanosleep()を使っても分解能が4msec~20msec程度みたい.
どうしようかな. busy loopしかないのか. そういやP4にはそれ用の命令ってあったっけか.
・
めだか
素朴な学園もので, じわっとくるのが温かくてよい感じ. 先生の表情に負うところが大きいかも.
IPとかUDPとかそのあたりのフォーマットを軽くお勉強.
・
家の前
焼き芋できそう.
三色なのも綺麗.
・徹夜の後遺症がまだ残る.
・ひょんなことから2週間後ぐらいにちょ~有名人(?)に自己紹介することに. 何話すんだ.
・昨日は普通に寝たのにまだ寝たりない. 体が動かん.
・染丸独演会. 観客の要求にその場で答えるリクエスト落語という変わった趣向は「蛸芝居」に.
蛸のけったいな動きが楽しい.
・『ドミノのお告げ』(久坂陽子)
「華々しき瞬間」は冷静な狂気(?)をはらんだ感じがぞっとする.
アプレの意味が分からず調べたらapre`sguerre:戦後派, 無責任な若者たちという意味だった.
・『サリバン家のお引っ越し』(野尻抱介)
『ヴェイスの盲点』の続き物第4巻.
シリーズを通して話の展開が見えやすいが, 安心して読めて心地よい.
今回はドタバタ劇. こういうのも悪かないし, 2巻の雄大さもよかったけど,
今のところ義理堅い海賊が出てくる3巻が最高.
・結局この38時間ほどで睡眠時間が2時間ちょい. 対策を立てねば体がおかしくなる.
・帰りの電車でコーディング. 寝てろよ...
・結局PHPはmbstring対応にしてもらったんだけど今度はwebdavとバッティングしてるらしい.
大変だねぇ.
・「うまく立ち回れば, ずっと儲けられたのでは?」
御意.
・とある数列の背後にあるものを見抜けなかった. 悔しい~. しかし, なんでそんなに複雑にするかぁ.
・軽く運動したら寝れるかなと6.5km/28分.
・車の音が煩くて寝れなくてブチ切れて, 結局夜通しサーバの設定をしていた. もう朝の8時じゃないか.
・今朝はゆっくり散歩.
・↓2で入れたpukiwikiのスケジュール表示プラグインで, 今日からの日付のみを表示するよう変更した.
perlは知らないので怪しいんだろうけど動いてるからいいや.
・
『ハッカーの楽しみ』の序文にFFTで使うビット反転について触れられていた.
x86系CPUでは大昔, 午後のこ~だ作ってるときに思いついた
revBit8Init db 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80
revBit8Next db 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
; init mm0, mm1
movq mm0, [revBit8Init]
movq mm1, [revBit8Next]
.lp:
pmovmskb eax, mm0 ; byte単位での各bitのMSBがalに代入
paddb mm0, mm1 ; byte単位でのラップアラウンド加算
...
(処理本体)
...
jmp .lp
によって255から128までの整数のビット反転シーケンスがeaxに代入されていくのが,
我ながらヒットだと思ってんねんけどどうやろう.
浮動小数版FFTでは普通MMX系レジスタは使わへんし.
・5km/19分 + 2km + α.
開発環境を整えるための準備のための環境づくりのために, 管理者もどきとなる.
# くどい...
cal.inc.phpがよさそうに見えたのでインストール. しかしRed Hatのデフォのphpだとこの動作に必要なmbstring系関数が使えないことを知る. がーん.
諸般の事情でリコンパイルは避けたかったので
PukiWiki/mbstring無しのPHPでの動作を試す. しかし肝心の関数が入ってないやん. で, webをさまよい
mbstringエミュレータを入れてようやく動いた. 感謝.
昔
御意見は光成滋生<herumi@nifty.com>までお願いします