タグ

Algorithmとclangに関するclavierのブックマーク (8)

  • GitHub - scandum/quadsort: Quadsort is a branchless stable adaptive mergesort faster than quicksort.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - scandum/quadsort: Quadsort is a branchless stable adaptive mergesort faster than quicksort.
  • mimalloc のメモリ管理 - Qiita

    Microsoft の mimalloc は面白い割り切り方で、小さいソースコードで高速なアロケータを実装しています。 確保するメモリブロックのサイズを、 Small (~8KiB), Large (~512KiB), Huge (512KiB~) の3つに分類し、 Small と Large は同じアルゴリズムで管理し、 Huge は OS 任せにして、 Small と Large は同じアルゴリズムをうまく利用しています。 基礎 OSはpage (x86では基 4KiB) ごとにメモリをプロセスに割り当てています。 しかしアプリケーションではずっと小さいメモリブロックが必要になることが多くあります。また、必要になるたびに毎回OSからメモリを割り当ててもらうのはパフォーマンスも悪いです。 mimalloc やその他の malloc 実装 (以降 malloc と呼びます) は OS か

    mimalloc のメモリ管理 - Qiita
  • ImageMagick 改造入門 (その弐) 減色処理前編 | GREE Engineering

    こんにちは。クライアント基盤チームのよやです。 アバター等を表示する為に PNG や JPEG の画像を元に GIF アニメーションを生成する事がよくありますが、GIF は 256色までしか扱えない為、元画像が数万といった単位で色を使っていると減色処理に大変時間がかかります。そこで、ImageMagick の減色処理を改造して高速化した事例をご紹介します。 尚、一度に読む分量ではまとめ切れない為、前編と後編に分けました。前編は減色処理、後編はその改造について説明します。 プログラム構成では上の図の magick/quantize.c が減色処理に相当します。 まず、減色処理の一般的な話から始めます。 減色の利点 Web で見かける画像ファイルの多くは、1つのpixel(描画の最小単位)に対して、Red, Green, Blue が各々8bits で計 24bits(= 3bytes) 、透

    ImageMagick 改造入門 (その弐) 減色処理前編 | GREE Engineering
  • ImageMagick 改造入門 (その参) 減色処理後編 | GREE Engineering

    こんにちは。クライアント基盤チームのよやです。 減色処理の話の続きで、ImageMagick の改造についてお話します。 前回 > ImageMagick 改造入門 (その弐) 減色処理前編 ImageMagick 減色処理の3つのフェーズのうち2つ目にあたる「RGB 空間で分割された立方体の統合処理」で特に時間がかかっていたので、少し手を加えて高速化しました。 前回のこの図に相当する処理です。 ImageMagick の既存の処理 前回、説明した「RGB 空間で分割された立方体の統合処理」のより細かい解説です。 統合処理の詳細 既存の ImageMagick の減色処理では、quantize_error の小さい順にRGB色空間内の立方体を削除して、それらのひとつ親の立方体に統合する処理を繰り返します。 対応コード (magick/quantize.c) 望みの色数になるまで繰り返す (

    ImageMagick 改造入門 (その参) 減色処理後編 | GREE Engineering
  • Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール

    最近、Robert Love先生のを暇な時にダラーと読んでいたりするわけですが、それの中にLinux Kernel内部で使われているLinked Listの実装が書いてあって面白かったので共有。 まず、Linked Listの一個一個のエントリを表すstructを定義します。 struct list_head { struct list_head *next, *prev; }; いやいやいやいや。いかにC力の低い僕でも流石にこれはあきません。騙されませんよ。前後のエントリへのポインタは確かにあるけれども、これにはデータを指すためのポインタがないじゃないの。おじいちゃんまたデータ忘れてきちゃったの?いやあねえ。 おじいちゃんは言った。「それはお前の短見というものじゃ。このLinked Listは以下のコードのようにデータ構造に埋め込んで使うものなんじゃよ。」そしてそれは正しかった。 st

    Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール
  • d.y.d.

    20:25 12/02/10 TLE 2k12 優勝しました。 TLE とは何かというと、毎年この時期に、インドの IIIT-H 大学 の学祭の一環として(たぶん)開催されてるC言語ショートコーディングコンテストです。 過去の感想 → '09, '10, '11。 コードというのは時間をかけて睨んでいればいつの間にか短くなるものなので、 平日で忙しそうなライバル達を横目に代休とって丸一日コードを睨む、 という富豪的作戦が功を奏しました。 ⇒ 提出したソースコード 問題はまだオープンになってないようですが、だいたいこんなの。例年とあまり変化なかった(ので少し拍子抜け)。 BST: 二分探索木に指定の入力値列を突っ込んだ最終状態を表示する COMPOSITE: 自分自身のソースコードのうち素数じゃない位置にある文字だけ表示する変種Quine HASHING: 入力された文字列のバイト値の総和を

  • http://yimado.s-lines.net/algo_and_ds/

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 1