20180219

今日も何もしていない、昼前に起きてぼんやりしていたら2時になったので乾麺を茹でて、食べて、寝た。起きてからなんとなくOCaml競技プログラミングをやってみた。入出力がつらい。

なんとなく以前WAしてダメだった問題をOCamlで書くとそれっぽくなったけど微妙にTLEしてつらかったのでTwitterに投げると範囲ミスしていたことが分かった。つらいですね〜〜。

Submission #2115866 - AtCoder Beginner Contest 077 OCamlでの提出

なんとなくHaskellで書き直したらそのままのアルゴリズムなのでTLEして小一時間首をひねった。そういえばHaskellは文字列の扱いがアレなので遅いって話を聞くなぁとStringをByteStringに換えるだけでACした。なんやこれ。

Submission #2116045 - AtCoder Beginner Contest 077 Haskellでの提出、なんでこんなにメモリ食べてるんですかね。

今日もこれからヘネパタを読む、筋トレもする。明日こそ早く起きる。

20180218

昨日はArduino(電気回路)の入門講座をした。私が主催したのに20分ほど遅刻してしまった。トランジスタの使い方やオームの法則からLEDに直列につなぐ抵抗の値を計算したりした。最後に全員にESP8266を撒いて好きなものを作ってもらおうとしたが環境の構築に時間がかかってしまってダメだった。おのれ部室のネット環境……

勉強会のあとは@ma2mo10_3634 とラーメンを食べた。どうしてラーメンを選んでしまったのか。どうしてその場の勢いだけで行動してしまうんだろう。

友人の家に泊まった。何も考えていなかったので吹雪く寒空の下、駅と友人宅間を往復することになってしまったがあれは良くなかった。

なんやかんややっていたが結局友人のベッドで寝潰れてしまった。神経質な友人は一晩寝られずにネトゲをやっていたらしい。本当に申し訳ない。

今朝は友人のベッドで10時ぐらいに目覚めたと思う。が、体が重くてそのまま二度寝してしまった。家を出たのは13時頃だろうか。

帰宅後完全に虚無で完全に何もできなくなったので昼寝した。

起きると21時で、慌てて AtCoder Beginner Contest 088 - AtCoder Beginner Contest 088 | AtCoder に参加した。全問解くことが出来た。

夕食は1人鍋だった。生の豚肉はおいしい。煮えていない白菜は甘い。学びだ。

ABC088

abc088.contest.atcoder.jp

ようは500円で払えない小銭(n mod 500)を手持ちの1円で払えるかどうかなのでそのままコードに落とした。

abc088.contest.atcoder.jp

nは100以下なのでシミュレートを行っても間に合いそうだと判断した。最善手を取り続ければいいだけなので、sortして前からリストを舐めていった。

abc088.contest.atcoder.jp

これは各マスで式を立てた。c_12 - c_11 = c_22 - c_21 = c_32 - c_31なので(式を書いてみれば分かる)条件式を愚直に並べた。ちょっと頭を使えばもう少し頭のいい解法もあると思う。

abc088.contest.atcoder.jp幅優先探索を書くっピ! → AC

 

 

20182016

今日は朝からひどい頭痛がしたので一日中寝ていた。起きていた時間は4時間あるかないかだろうか。寝ても寝ても眠い。眠たい。頭痛がする。明日は学校でマイコンの入門講座を開くことになっている。寝る。

今日は起きていた時間にOoOの為ソーティングネットワークを書いてみた。

github.com

f:id:jidori_cpu:20180217011405p:plain

quartusは賢いなあ……

時間は大切に使おう。あしたはきちんと起きてきちんと進捗を出していこう。

20182014

頭がはたらかない、つまらないことをするのにもなんだか時間がかかるし靄がかかっているみたいで気持ちが悪い。ちょっとした物事も覚えていられずに頼まれごとを何度も忘れてしまうので親から怒られてしまった。

今日はOutOfOrderを実装している。算術演算の依存は問題なく解決できるが、メモリのデータハザードは先の命令がベースレジスタを書き換えてしまう場合分からなくなってしまうのでどう実装するか悩んでいる。そもそもメモリのデータハザードはOoOで解決すべきなのだろうか?

頭がぼんやりする。そういえば明日までに履歴書を書かなくてはいけない。面倒だ。

20180213

10時ぐらいに目覚めて頭が痛かったので二度寝して起きると二時、完全に出遅れた。昼飯を食べてからはRISC-Vの仕様書を読んだり実装について考えたりしていた。あと、部屋を掃除した。

新しいCPUのリポジトリも作った。やっぱり興味はあったのでOoOは実装する。

ローカルのDockerが死んでしまったみたいだ。困る。

 

github.com

20180212

今日は10時頃に目覚めたがなんの気力も沸かなかったため12時頃までぼんやりしていた。昼飯を食べた頃に昨日部誌を書き始めようと決心したことを思い出したので昔書きかけて放置していた原稿を引っ張りだしてきた。

支離滅裂だったので少し修正してWIPで提出した。三日ぐらいの内に片づけてしまいたい。

原稿を書き終わった後少し休憩してから書きかけだったVGAのドライバを完成させた。VRAMを画面のサイズ分だけ確保したかったがFPGA(DE0-CV)の限界でディスプレイの4pxで一単位ににまとめることになった。一単位で2mmぐらいあるが始めはこんなものだろう。悪くない。

またすこし休憩したら新しいCPUの設計に取りかかりたい。春休みに入った時に決心したことに『可能な限り手を抜く』というのがある。完璧主義は良くない。それよりもまず動かそうぜ。OoOは実装しない。浮動小数はサポートしない。命令セットは既存のものを流用する。目標はOSを動かすことだ。

やっていきたい。

20182011

今日も何の進歩もない、ただただ時間だけを消費した。こういう日は一日を振り返ることすら面倒だ。

今日は朝早く起きて祖母の家に父の運転する車で向かって、墓掃除をして、帰って来た。墓場にはチラチラと雪が降っていた。

帰宅してからちょっとだけコードを書いた。HaskellC++再帰で書いた幅優先探索の実行時間を比べるとHaskellのほうが速くて驚いたけど、C++の再起部分でmoveすると結果的にC++が四倍程速くなった。Leaf最適化や末尾最適化はされていないんだろうか、それとも私の書き方が悪いんだろうか。まあループで書こうという話だ。破壊的なアルゴリズムを書く場合はC++の方が楽に書ける。私はHaskellを書くけど。

 

abc007.contest.atcoder.jp

Haskellでの提出、バージョンがほんのすこし古いので何度かREして面倒くさかった。

 

abc007.contest.atcoder.jpC++での提出、コピーの起きているところでmoveするだけで15倍速くなり、メモリ使用量は1/50になった。

 

目標にしていたVRAMの実装は取り組んですらいない。何をするのも面倒だ。一日中頭痛がした、運動不足だろうか。昼飯の鯖と山椒の押し寿司は美味しかった。明日もたぶんダメだ。