OpenModelicaを使って電気回路のシミュレーションをしてみる

マルチドメインモデリング環境である、OpenModelicaを使用した電気回路のシミュレーションの例を通して、その使用感や言語的側面に触れたいと思います。想定読者としてはModelicaに触れたことがない人で、バックグラウンドとして回路シミュレーションに多少…

MathJaxの試し書き2

下記のお題で書く。積分や分数を含む式。Q.169 ☆5次の極限値を計算せよ。Find the limiting value.pic.twitter.com/T9mOJmpvJN— どちゃ楽数学bot (@so_easy_math) 2017年7月26日 十分大きな については においてであるからより 感想 ここまで来たら何で書い…

MathJax記法の試し書き

はてながMathJaxに対応しているらしいので、試しに使用してみる。題材は下記の問題の解答を書くこと、としてみる。Q.127 ☆8 [高2鉄緑校内模試](a+b)(b+c)(c+a)=2^2016を満たす自然数の3つ組(a,b,c)は幾つあるか。— どちゃ楽数学bot (@so_easy_math) 2017年7…

sh/bashのパイプ/リダイレクションの使い方

sh/bashのパイプ/リダイレクションの使い方についてよく使いがちなものを理解できるようにまとめておく。 モチベーション:挙動がよくわからない シェルスクリプトに書かれているリダイレクションが理解できない。これまで、運用とかしてこなかったので人の…

つらぽよいsecure boot

つらぽよAdvent Calendarにネタを提供したわけでも何でもないんだけど自宅のデスクトップPCが壊れた。具体的に言うと、HDDがクラッシュした。 もうちょっと正確に言うと、動作真っ最中に子供がぶつかって倒してしまった。 昔のHDDと比べると、あのカツーン、…

Evalモナドを使って無限リストの並列評価

http://partake.in/events/9f226986-2812-441d-98b7-1f5cca9be432 にオンライン参加してきたので、Evalモナドを使った並列評価を行なってみた。 コード ナイーブな素数探索アルゴリズムです。指定された数以上の一定個数の素数を抽出します。 import Control…

モンゴメリ乗算の例

下記を参考にモンゴメリ乗算 - Wikipediaを参考に、サンプルとして、モンゴメリ乗算の計算をしてみる。`11*18(mod 169)`を計算する。単純に、 11*18 = 198 = 1*169+29で答えは`29`です。これをあえてモンゴメリ乗算でやってみる。モンゴメリ乗算は剰余算を減…

__builtin_ffsはどこへ行くのか?(続編)

GCのマークビット判定などに使用される__builtin_ffsというGCCコンパイラ拡張が気になったので 「__builtin_ffsはどこへ行くのか? - dec9ue's diary」って記事をちょっと前に書きました。続編です。さて、何の話だったかというと、__builtin_ffsとは Other …

Lucky Thirteen Attackの攻撃手法を説明してみるよ

Lucky ThirteenはTLS, DTLSのCBCモードを利用する暗号の脆弱性を突く攻撃です。具体的に言うと、CBCモードに対するPadding処理の弱い部分を狙ったPadding Oracle攻撃の一種です。その影響とか、脅威とか、対処法とかは結構いろんな所で説明されているのです…

__builtin_ffsはどこへ行くのか?

__builtin_ffsとはなにか?Other Builtins - Using the GNU Compiler Collection (GCC) http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Other-Builtins.html によると Returns one plus the index of the least significant 1-bit of x, or if x is zero, ret…

"volatile"をつけると値がレジスタに浮かない

チラ裏にでも書いてろ、って内容なので何ですが、、、C言語の変数にvolatileをつけたら値がレジスタにキャッシュされたままにならないね、と言う話を実際に確認してみました、と言う話。そのままろくに考えないでやってみます。まず、下記のような意味のない…

copying_gcという車輪の再発明

なんか、最近、「車輪の再発明をしよう」みたいな話がちょくちょくあるので、GCを再発明してみた。「車輪の再発明をしよう」の例: https://twitter.com/viscuit/status/288181884658257922…まぁ、再発明っていうか、スクラッチで書いただけなんですけど。 …

JHCのGC解説

GC Advent Calendarでは時間的に書けなかった、JHCのGCの解説をまとめる。 JHCのGC概要 JHCには下記3つのGCオプションがある。 GCなし BOEHM GC JGC このうち、上の二つはgc_noneによる実装であり、JGCはgc_jgcによる実装である。 この様な構成になったのは…

Haskell の GC を比較してみる

GC Advent Calendar 22日目の記事です。同じ言語に対する異なる処理系があれば、GCを比べてみたくなるのは人間のサガですよね。 今回はHaskellの2つの処理系のGCを比べて見ることにします。 ■ GHC(the Glasgow Haskell Compiler) Haskellの実行系といえばこ…

GHCソースコードリーディング勉強会 第1回 行ってきた

第0回に続いて、 GHCソースコードリーディング勉強会 第1回 #readghc に行ってきた。というか発表しました。発表資料: GCをみればRTSが見えてくる、かも。。。まー、ちょっと読み込み不足なところもあって、メンバー見たらかなりこわい人達だったので、これ…

Miller-Rabin法で擬素数を探す

Miller-Rabbin法による擬素数探索をHaskellで書いてみた。感想 1. 多倍長計算を気にせずできるInteger型素晴らしい! 2. とりあえず乱択のパラメーターを乱数にしているけど、IOモナド破壊しても大して困らなそうなので破壊したいと思います。改善点 1. 実際…

Euler 4 を Haskell で高速化してみたが、、、

下記のような記事があって、HaskellとOCamlの速度を比較してみた - let start programming = fun life -> life * 100;;キャミバ様とガリグ先生がOCamlでコードを戦わせていたようだったので、こりゃ勝てないと思ってHaskellで高速化をしてみた。 結果、ぼく…

for による組み合わせ回路

昨日の回路を少し改善してみた。 functionとforを組み合わせることで超シンプルな回路として書けた。 wireで実装するよりシミュレーション速度も速い。(仕方ないか。。。) 合成後の速度は分からないが、、、コードなぜ自分がわざわざこんなことをやっている…

組み合わせ回路に挑戦

自作回路を作ってみた。 使用したのはicarus-verilog。このicarusシミュレータはWindowsでも動作するのだが、ためしてみるとシミュレーションにめっちゃ時間が掛かる。実装してみたのは冪剰余演算。512bit整数で3回ほど回すシミュレーションをしてみたのだが…

はてな記法

いままで使ってなかった。。。。 ちょっとはてな固有でやだけど楽にハイライトできるから使ってみるかな。。。 -- Simple example for Bang-Patterns leak import Control.Monad import Data.Foldable ( foldr' ) import System.IO main :: IO () main = do …

世界一難しい数独@Alloy(cont'd)

下記のような記事を見つけた。 星11個の数独の問題をAlloyで なんと以前の記事を見てdisktnkさんという方が「遅すぎる」と検証してくださったようだ。。。 Lets's Compare! ぼくの実行結果 Executing "Run run$1 for 13" Solver=sat4j Bitwidth=0 MaxSeq=0 S…

入門 Verilog

長らく堪えていたが、耐え切れなくなってポチってしまった。夏休みの積ん読リスト入り。 【送料無料】入門Verilog HDL記述改訂 [ 小林優 ]

世界一難しい数独、Alloyで解いてみたよ(RocketNews24から)

RocketNews24さんで 本当に解ける人いるの? フィンランド人数学者が作った “世界一難しい数独” が発表されるという記事があったんで以前のAlloyの記事で使ったモデルを流用して解いてみた。 about alloy Alloy is a language for describing structures and…

Control.DeepSeqを使って正格評価(訂正版)

何が酷いって、記事を見なおしてみたらfoldrとfoldlのロジックを間違えてる。コレは死ねる。。。ただ、Bangについてはそれでもちょっと怪しいので訂正版の記事を作り直したいと思います。 古い記事 は自戒の意味も込めて残しておきます。(なんの意味があるの…

Control.DeepSeq を使用して正格評価

本記事はfoldのアルゴリズムに対する理解がめちゃくちゃだったんで修正記事作りました。(2012/06/25) モンテカルロ法で円周率を計算するために多数のIOから取り出した結果の集計を行おうとした。 しかし未評価thunkによるメモリオーバーフローが発生し、イン…

正格評価がうまく動かない?

モンテカルロ法で円周率計算、みたいな話がちょろっと降ってきたので任意精度で計算できるようなコードをHaskellで書いてみたのだがループの中でどうもスペースリークしている。もう少しいうと、集計用の畳み込み関数が未評価のまま残ってしまうようだ。 mai…

ガベージコレクタのアルゴリズムと実装(アルゴリズム編)のメモ

一章 ガベージコレクタの評価項目 ・スループット ・停止時間 ・使用効率 ・局所性二章 マークスウィープはメモリ全体を舐める フラグメントがたまる →BiBOP法(BigBagOfPages) phkmallocみたいなやり方 チャンク検索のコストが上がる →サイズ別チャンク単…

さっそく移行

はてなダイアリーを開いて直ぐなのだがさっそく移行してきた。 http://d.hatena.ne.jp/dec9ue/ 最初からブログで開けと。

BEAST attack

あまりよく理解していなかったことではあるが、、、、 CBCモードってのは選択平文攻撃にとても弱いらしい。CSRFとかで乗っかられちゃうと、セッション内で攻撃成功すればcookieが盗まれるとおもわれる。これって暗号強度の観点から言うと暗号の効果を否定す…

Alloyでナンプレ

nishioさんのAlloyネタを追っかけてナンプレ(数独)をAlloyで写経してみた。 sig Col extends Index とか one sig One,Two,Three,Four,Five,Six,Seven,Eight,Nine あたりがダサさが極まっていてたまらない。 abstract sig Index {} sig Col extends Index { c…