タグ

cに関するtk60qtのブックマーク (27)

  • CMakeでデフォルトのコンパイラを書き換える微妙な方法 - あさっては曇りのち晴れ

    あけましておめでとうございます。 年が明けて2週間ほど経ちまして、今年最初の更新はまたしてもCMakeネタです。以下言語はC++を例としておりますのであしからず。 さて、コンパイラなんぞはよしなに設定してくれるCMakeですが、時にそれが気に入らない場合もあります。例えば… Macのg++は古いのでというかC++11使いたいのでclang++がいい スパコン等でg++じゃなくてベンダさんが指定してるコンパイラを使いたい なんかg++ディスってるみたいに見えますがそんなことはないです。(メッセージはclangの方が親切だけどこないだ試したら最適化能力はg++の方が高かった。) で、普通の方法その1。CMake叩くときにセットします。 cmake -DCMAKE_CXX_COMPILER=clang++ いちいちそんなのタイプしてらんないよ。シェルの履歴使…ゲフンゲフン… では普通の方法その2

    CMakeでデフォルトのコンパイラを書き換える微妙な方法 - あさっては曇りのち晴れ
  • zlib 入門

    公式サイトは http://zlib.net/ になりました。 以下の記述はかなり古いものを急いで書き直したものです。 おかしなところがありましたらご教示ください。 zlib とは zlib は Zip や gzip に使われている圧縮アルゴリズムをライブラリ化したものです。 作者は Zip や gzip 同様 Jean-loup Gailly と Mark Adler です。 ライセンスは BSD 類似です(詳しくは zlib 配布に含まれる zlib.h のコメントをご覧ください)[標準では使用されませんが,アセンブラ版 match.S はGPLです]。 画像フォーマット PNG の圧縮も zlib で行われています。 Java(JDK 1.1 以降)には zlib に相当するものが組み込まれています。 java.util.zip のドキュメントをご覧ください。 zlib の圧縮アルゴ

    tk60qt
    tk60qt 2016/05/24
  • もう一度基礎からC言語 第1回 なんでいまさら「C言語」なのか?――C言語よもやま話

    C言語の生い立ち さて、ここでC言語の生い立ちをざっと紹介しておきましょう。そのためには、Cの母体とも言えるOS・UNIXの誕生について紹介する必要があります。また、Cの先祖とも言えるAlgolという言語のことも紹介するべきでしょう。 UNIXの誕生 UNIXは、1969年にAT&Tベル研究所のK.トンプソンらが開発したミニコンピュータ用のOSです。それまでのコンピュータはいわゆる汎用機(メインフレーム)と呼ばれる大型機で、操作はとても面倒なものでした。 UNIXにはスクリーンエディタ、マルチユーザー・マルチタスク、分散処理ネットワークなどの新しい機能が盛り込まれ、コンピュータの使い方が大きく変わるきっかけとなりました。 さらに1973年、ゼロックス社・パロアルト研究所でアラン・ケイらがAltoというコンピュータを開発し、ワークステーションという『個人で使うコンピュータ』のカテゴリーが生ま

  • Cython

    強力なライブラリを豊富に備え、科学計算から統計分析、金融工学まで利用が広がるPython。スクリプト言語とは思えない高速性の秘密が、NumPyやSciPyなどのPythonパッケージで広く使われているCythonです。CythonはPythonプログラムの実装を高速化するコンパイラであると同時に、C/C++で書かれたライブラリをPythonから利用できるようにするブリッジとしての役割も果たします。書はPythonの表現力とC/C++の速さを備えたCythonを使って、高速なシステムを効率的に開発する手法を示します。科学技術計算や統計分析の分野では恒常的にある「Pythonを高速化したい」というニーズに応える一冊です。 はじめに 1章 Cythonの基 1.1 Python、C、Cythonの比較 1.1.1 関数呼び出しのオーバーヘッド 1.1.2 ループ処理 1.1.3 算術演算 1

    Cython
  • gccで Wall & Wextra を使っても有効にならない警告 - Qiita

    gccで-Wall -Wextraを付けてもなお有効化されない警告オプションがあるそうなので、ドキュメントを読んでその効能を簡単に調べた。 なお、これらのオプションの中にはfortran、Objective-C用のものもあるようだが、それらについては説明を省く。 検証環境: gcc (Rev3, Built by MSYS2 project) 5.2.0 (やや特異な環境なのでLinuxなどの一般的な環境とは状況が違うかもしれない) 参考: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html https://gcc.gnu.org/onlinedocs/gcc/Objective-C-and-Ob

    gccで Wall & Wextra を使っても有効にならない警告 - Qiita
    tk60qt
    tk60qt 2015/12/17
  • 初心者の初心者による初心者のためのC言語講座

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • getopt_long関数の利用 - コマンドラインオプションの処理 - 碧色工房

    getopt() を使えばPOSIX標準のコマンドラインオプションのルールを実装することができるのだが、 引数の扱いにはGNUの拡張として、ハイフン2つ+複数文字(単語)の構成のコマンドラインオプションが使われることがある。 例えば、先に出したlsの例だと、 -a と同等の意味を持つオプションとして --all というものが定義されている。 実際、数個のオプションならハイフン1つ+一文字のシンプルなオプションで十分なのだが、 コマンドラインオプションの数が増えていくと一文字のバリエーションでは表現が難しくなり、使いにくいものになってしまう。 そこで、ハイフン2つ+単語の構成のコマンドラインオプションを扱うための関数が用意されている。 それが、 getopt_long() getopt_long_only() である。 通常のオプション(「短い」オプション)に対して「長い」オプションを処理す

    getopt_long関数の利用 - コマンドラインオプションの処理 - 碧色工房
    tk60qt
    tk60qt 2015/11/05
  • Cでのコマンドラインパラメータの受け方メモ – taichino.com

    Cのプログラムでコマンドラインからパラメータを受けたい訳ですが、自力でやろうとしてもargv経由で文字列配列が渡されるだけなので非常に面倒です(LL病な自分としてはハッシュで欲しい)。例えば以下のgrepコマンドの用に複数のパラメータを順不同で受けたいとかになると、かなり大変ですね。 $ grep -nH -I -R search_text * そこで、なんか無いのかと思って調べてみるとgetoptを使えば良い事がわかりました。 この関数を使うとパラメータを受ける処理を以下のように書けます。第3引数で取り得るオプションの種類を指定します。”abcd:e:”の場合は、取り得るオプションはa,b,c,d,eの5種類で、その内コロン付きのdとeは値を取ります。 #include "stdio.h" #include "stdlib.h" #include "getopt.h" int main(

    tk60qt
    tk60qt 2015/11/05
  • FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない

    FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない ファイルストリームを操作する関数を使用するときには、テキストモードとバイナリモードの違いを正しく理解することが重要である(レコメンデーション「FIO14-C. ファイルストリームにおけるテキストモードとバイナリモードの違いを理解する」も参照)。 C99 [ISO/IEC 9899:1999] のセクション 7.19.9.2 は、バイナリモードでバイナリファイルを開いた場合の fseek() の特定の動作について次のように述べている。 バイナリストリームでは、whence が SEEK_END の値をもつ fseek の呼出しを意味あるものとしてサポートする必要はない。 さらに、セクション 7.19.3 の脚注 234 には次のように記載されている。 バイナリストリーム(ナル文字の詰め物が可能なた

    FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない
    tk60qt
    tk60qt 2015/11/04
  • A Quadratic Programming Page

    This page contains a list of information and links related to the wonderful world of quadratic programming. If you have anything you would like to add, please send us a message. Quadratic programming codes: BQPD from Roger Fletcher CPLEX Barrier/QP solver CPLEX Simplex/QP solver CPLEX Mixed-integer QP solver The Xpress-MP Newton-barrier QP solver from FICO HOPDM from Jacek Gondzio and Anna Altman

    tk60qt
    tk60qt 2015/11/02
    QPのパッケージがズラリと一覧になっている!!
  • Question #190816 “Unable to find 'python.swg' error” : Questions : Zorba

    tk60qt
    tk60qt 2015/10/21
    swig-python
  • 可逆計算 - Wikipedia

    可逆計算(かぎゃくけいさん、英: Reversible computing)とは、可逆な、すなわち計算過程において常に直前と直後の状態が一意に定まる計算。可逆計算は、計算過程において情報が消失しないため非破壊的計算(Non-destructive computing)としても知られている。 この目的のために特に重要な、密接に関連する2つの主要な可逆性のタイプがある。それは、物理的可逆性と論理的可逆性である。[2] あるプロセスが物理的に可逆であると言われるのは、それが物理的エントロピーの増加をもたらさない場合である。これは等エントロピーであることを意味する。この特性を理想的に示す回路設計のスタイルは、チャージリカバリ論理、断熱回路、または断熱計算と呼ばれる(断熱過程を参照)。実際には、どんな非定常な物理プロセスも完全に物理的に可逆または等エントロピーにすることはできないが、システムの進化を

  • IUPAC ambiguity codes. Nucleotide ambiguity code. Nomenclature for Incompletely Specified Bases in Nucleic Acid Sequences.

    Code example: Restriction enzyme: AarI Recognition site: CACCTGCNNNN'NNNN_ Cleavage of DNA (/): 5'- C A C C T  G C N N N N/N N N N -3' 3'- G T G G A C G N N N N N N N N/-5' The letter codes and compliment translations are those proposed by Nomenclature Committee of the International Union of Biochemistry and Molecular Biology (NC-UIBMB) Note: DNA Sequence Assembler can automatically detect SNP and

  • CUDA6のNSight Eclipse EditionでCUDAのリモート開発を試す - Qiita

    時間の4月16日にリリースされたCUDA6の記事を読んでいたらRemote Development with NSight Eclipse Editionというとても気になるものが書かれていたので試してみました。 *編集と実行、デバッグに関してはCUDA6からではなく前のバージョンからもできるようです。 検証環境 Local : OS: Ubuntu 13.04 (VMWare上) CUDA: 6.0 (ドライバーはインストールしていない) Remote : OS: CentOS6 CUDA: 6.0 ローカル、リモートともに、PATHとLD_LIBRARY_PATHは通してあります。 NSightの起動 ローカル環境でNSightを起動します。パスが通してあるなら以下のコマンドで起動できます。 bash $ nsight プロジェクトのRemote環境の設定 Remote環境の設定は

    CUDA6のNSight Eclipse EditionでCUDAのリモート開発を試す - Qiita
  • CUDA6で実行時間を取得する - /home/tnishinaga/TechMEMO

    最近CUDAを触り始め、現在はプログラミングガイドや、理研の入門テキストを読みながら学習中です。 その中でプログラムの実行時間が知りたくなったので、以下のサイトを参考に実装したのですが……コンパイルエラーが出て動きませんでした。 http://www.gdep.jp/page/view/251 /*タイマーを作成して計測開始*/ unsigned int timer = 0; CUT_SAFE_CALL( cutCreateTimer( &timer)); CUT_SAFE_CALL( cutStartTimer( timer)); // 処理 /*タイマーを停止しかかった時間を表示*/ CUT_SAFE_CALL( cutStopTimer( timer)); printf("Processing time: %f (msec)\n", cutGetTimerValue( timer))

    CUDA6で実行時間を取得する - /home/tnishinaga/TechMEMO
  • 時間の計測 - C言語 - 碧色工房

    プログラムの課題などで実行速度を向上するにはどうしたらよいか? なんて問題が出されることがあります。 そんな時実際どれくらい時間がかかっているのかを測ってみたくなります。 ベンチマークソフトのように処理速度の計測なんかをできたら面白いかもしれません。 そこで、時間の測り方を書いてみたいと思います。 まず、時間関係の関数を使うには time.h というヘッダファイルをインクルードする必要があります。 こいつの中身を一度見ておいたほうがいいでしょう。 Windows の Visual C++ だと C:\Program Files\Microsoft Visual Studio\VC98\Include にあります。 VineLinux の場合は /usr/include/ にありますが、 内部で /usr/include/bits/ にある time.h をインクルードしているので二つとも見

    時間の計測 - C言語 - 碧色工房
    tk60qt
    tk60qt 2014/10/05
    "豆知識:型名で~_t とついているものは typedef を使って定義されているという意味です"
  • Linux カーネルのコンテキストスイッチ処理を読み解く - naoyaのはてなダイアリー

    Linux カーネルのプロセススケジューラの核である kernel/sched.c の schedule() を読み進めていくと、タスク切り替え(実行コンテキスト切り替え)はその名も context_switch() という関数に集約されていることが分かります。2.6.20 の kernel/sched.c だと以下のコードです。 1839 static inline struct task_struct * 1840 context_switch(struct rq *rq, struct task_struct *prev, 1841 struct task_struct *next) 1842 { 1843 struct mm_struct *mm = next->mm; 1844 struct mm_struct *oldmm = prev->active_mm; 1845 184

    Linux カーネルのコンテキストスイッチ処理を読み解く - naoyaのはてなダイアリー
  • Man page of STRCHR

    tk60qt
    tk60qt 2014/07/08
    "strchr, strrchr, strchrnul - 文字列中の文字の位置を特定する" 便利〜
  • C言語講座:gets( )とscanf( )の問題点の解決

    [キーボードから1行入力]←このソース→[書式付き入力と書式指定子] /* 今日は、標準ライブラリ関数gets( )の問題点と、fgets( )による問題解決の話です。 #include <stdio.h> char *gets(char *s); 使用例:gets(s); 実行結 戻り値 成功 s 失敗 NULL gets( )は、標準入力(stdin:キーボード)から1行を読み込みsにしまいます。改行コード(\n)または EOF に出会うと、s に ヌル文字(\0)を追加して戻ります。次のプログラムを検討して見て下さい。重大な問題点があります。 #include <stdio.h> void main(void); void main(void) { char name[21]; printf("お名前を入力して下さい\t"); gets(name); printf("\nあなたのお名

    tk60qt
    tk60qt 2014/07/06
    gets()ではなくfgets()
  • 統計グラフの色

    [TODO] R 4.0.0 以降の色についてはそのうち書きます。とりあえず palette() のヘルプをご覧ください。palette("Okabe-Ito") とするとsafe colorsになります。→ A New palette() for R,Color Universal Design,Essentials of color in R。あと Colorspace 2.0 とその JSS paper。 はじめに 統計グラフに色を付けることは広く行われています。しかし,色は万人に共通のものではありません。日人男性の5%,白人男性の8%は,RGB(赤緑青)のうち赤と緑の区別がうまくできません。その内訳は1:3で赤の感受性がないP型(1型,protanopia)と緑の感受性がないD型(2型,deuteranopia)に分かれます。青を感じない人や,RGBのうち2色以上を感じない人もい

    tk60qt
    tk60qt 2014/06/24