Microsoft Win32 API では、 スクリーン セーバーと呼ばれる特別なアプリケーションがサポートされています。 スクリーン セーバーは、指定した期間マウスとキーボードがアイドル状態になったときに起動します。 これらは、次の 2 つの理由で使用されます。 静的なイメージによって引き起こされる蛍光体の火傷からスクリーンを保護するため。 画面上に残された機密情報を隠すために。 このトピックは次のセクションに分割されます。 スクリーン セーバーについて スクリーン セーバー関数の使用 スクリーン セーバーの作成 新しいスクリーン セーバーのインストール [スクリーン セーバーの構成] ダイアログ ボックスにヘルプを追加する スクリーン セーバーについて Windows コントロール パネル のデスクトップ アプリケーションを使用すると、ユーザーはスクリーン セーバーの一覧から選択し、
メモ用。デバッグ等で有用なコールスタックはgdbなどの各種デバッガで取得できるけれど、実行中にアプリケーション内で取得したい場合がある。 それはglibcが使えるならbacktrace()、backtrace_symbols()で実現できる。 例えば下記のコード: #include <stdio.h> #include <execinfo.h> void hoge1(void) { size_t i; void *trace[128]; char **ss_trace; size_t size = backtrace(trace, sizeof(trace) / sizeof(trace[0])); ss_trace = backtrace_symbols(trace, size); if (ss_trace == NULL) { /*Failure*/ return; } /*例えば表示
AI開発を手掛けるASReal(東京都目黒区)とHashLab(京都市)は10月4日、日本語で仕様を伝えるだけでコーディングするプログラミングAI「AI Programmer」(β版)を公開した。利用料は無料で、対応言語は14種類。 使いたいプログラミング言語を指定し、入力欄に「“Hello World”という文字列を表示する」などとプログラムの内容を日本語で書きこんで実行ボタンを押せばコードを出力する。 対応言語はSQL、Python、JavaScript、HTML・CSS、Solidity、C++、PHP、GO、R、Perl、Ruby、正規表現、Haskell、Lisp。コードを出力するのみで、コンパイルなどの機能は持たない。 AI生成のプログラムは動作するのか? どのくらい使えるのかチェックしてみた。まずはC++で「Hello World」を出力するプログラムを書かせてみる。指示は「
COLUMN 組み込みエンジニアの戸惑い PythonからC言語を呼び出してみる①(Python/C APIを使った場合) # Python # エンジニア # 組み込みエンジニアの戸惑いシリーズ Python編 # 言語 2019-07-26 FSI Embedded 組み込みソフトウェアエンジニアがPythonを始めてみました。そして、第5の戸惑い、今回は組み込みとは切っても切り離せない「C言語」に関しての話題です。 Pythonを扱っていて課題となり得る、処理速度の改善や過去資産の流用など、そんなときに役立つかもしれない、PythonからC言語を呼び出す方法についてのご紹介です。 PythonからC言語、またはC++を呼び出す方法には様々なものがあります。以前の記事でもPython/C API (Python.h)やSWIG、boost.pythonなどを使うことで実現可能とご紹介し
この記事では、双曲正接を計算する CPython 用の C++ 拡張モジュールをビルドし、Python コードからそれを呼び出す手順について説明します。 Python では最初にルーチンを実装して、C++ で同じルーチンを実装した場合の相対的なパフォーマンス向上を示します。 Python インタープリターの機能の拡張には、C++ (または C) で記述されたコード モジュールが一般的に使われます。 拡張モジュールの主要な種類は次の 3 つです。 アクセラレータ モジュール: パフォーマンスの高速化を実現します。 Python はインタープリター言語であるため、C++ でアクセラレータ モジュールを記述してパフォーマンスを向上させることができます。 ラッパー モジュール: 既存の C/C++ インターフェイスを Python コードに公開するか、Python から簡単に使用できる、より Py
概要 C++ で作成した処理を Python から使用するには以下を始めとした複数の方法があります。 Python.h SWIG Boost.Python Shiboken pybind11 どの方法を使用するかは状況によって変わりますが Boost.Python では C++ 内から Python を呼び出せる(今回の例とは逆)という利点があります。Python と C++ の間で相互に呼び出しを行えるので、C++ で作成されたアプリケーションにマクロ言語として Python を組み込む相互に呼び出しを行うといったことができるようになります。 ここでは Linux(Ubuntu 18.04)上で Boost.Python を使用して Python (Python 3)用ライブラリーを作成する方法について説明します。 Boost.Python のビルド まず以下のコマンドで必要なパッケージ
#C言語でPythonのモジュールを作ってみる ##環境 Python 3.4.6 gcc version 4.8.5 openSUSE Leap 42.3 ##概要 Python勉強しているときに拡張モジュールの作り方が出てきて自分でも作ってみようと思った次第です。 個人的に色々つまったので、ここにノート代わりに書いておきます。 ##ゴールまでの流れ C言語でPythonのモジュールを作成 ↓ Pythonを使ってCをビルドする ↓ PythonでimportしてCモジュールを使ってみる C言語でモジュール作成 まず、C言語でPythonのモジュールを作成していきます。 PyObject型を多用します。とりあえず、Hello_worldとpushとpop作りました。 #include <Python.h> //Cの方で作成してPythonで利用する関数はPyObjectを使う stati
1. Extending Python with C or C++¶ It is quite easy to add new built-in modules to Python, if you know how to program in C. Such extension modules can do two things that can’t be done directly in Python: they can implement new built-in object types, and they can call C library functions and system calls. To support extensions, the Python API (Application Programmers Interface) defines a set of fun
ベクトル/行列演算の定番ライブラリEigen (日本語解説のサイトまとめと便利な機能紹介) Eigenとは C++の行列/ベクトルを扱うライブラリ(公式). Eigenの主な特長 行列演算を直感的に書くことが出来る. ヘッダーファイルのみのライブラリのため,ライブラリのビルドやリンクが必要なく組み込やすい. 高速.他のライブラリとの比較ベンチマークはこちら(公式) 解説サイト(すべて日本語) Eigen - C++で使える線形代数ライブラリ(でらうま倶楽部)- 基本的な使い方とも幾何変換,クォータニオンなどの解説もあり. Eigen ー C++で線形代数を!(singular point)- 3回のポストで,幅広い機能について解説している. Robotics/Eigen(NAIST::OnlineText)- 基本的な機能の他に行列分解についても解説あり. Eigenの使い方 Eigenは
C言語初心者です。 SIMD命令を使って8×8行列を計算するプログラムを書いたところ、"segmentation fault" が実行の度に起きたり起きなかったりする奇妙なことになってしまいました。 どこが間違いなのか、どう改善すべきなのか、教えていただけると幸いです。 またswitch文のところは、ポインタとiを使って計算すべき所だと思うのですが、なぜか変数を使うと "segmentation error" が起きてしまいます。これに関しても理由が知りたいです。 以下がコードです。 #include <math.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <x86intrin.h> void print_vec(__m256 m) { printf("{"); for(int i=0;i<8
まとめ 8×8 行列の乗算アルゴリズムと 16×16 行列の加算アルゴリズムの両方で、それぞれ 1.77 倍と 1.8 倍となり、インテル® AVX バージョンのほうがインテル® SSE よりも優れた結果となりました。これは、インテル® AVX のほうが、レジスターの幅を活用することで 1 命令あたり 2 倍のオペランドを処理し、インテル® SSE よりも高いスループットを達成できることを示した良い例です。 行列式アルゴリズムでは、8 つの行列の行列式の計算を同時に実行することでパフォーマンスが向上しました。ただし、行列式の計算の前の 2 つの 8×8 転置により、パフォーマンスはやや制限されます。 一般に、アプリケーションはメモリー集約型よりも計算集約型のほうが、より優れたパフォーマンス・スピードアップが得られます。 ソースコード 完全なソースコードは http://software.i
C++のメモ Visualization Tool Kit(VTK)など トップページページ一覧メンバー掲示板編集 SIMD 最終更新: sonogi1 2014年08月28日(木) 22:44:43履歴 Tweet SIMDはCPUが持っているベクトル演算機能である. ベクトル長は128bitや256bitと短いが,配列の個々の要素に同一の操作をする場合,2倍〜10倍程度の高速化が簡単に見込める. 組み込み関数が用意されているため,通常のC++でそのまま記述することができる. 命令についてはIntel Intrinsics Guideを参照. SIMDを用いた行列の積の高速化 アルゴリズム AVX(Sandybridge以降) AVX2(Haswell以降) ベンチマーク結果 SIMDを用いた行列の転置の高速化 アルゴリズム ベンチマーク SIMDを用いた行列の積の高速化 AVXのベクト
WinHTTPについて WinHTTPはWindows用のHTTP通信を行うためのコンポーネントです。 本記事ではWin32APIからWinHTTPを使うサンプルを記載しています。 動作環境 WinHTTPの対応OSについては以下を参照してください。 WinHTTP Versions Windows 2000はService Pack 3以上が必要です。 Windows XPはService Pack 1 (SP1)以上が必要です。 Windows XPでTLS 1.1とTLS 1.2を使うためには別途対応が必要です。 例えば以下の方法 TLS 1.2 · sayurin/ffftp Wiki · GitHub Windows 7でTLS 1.1とTLS 1.2を使うには以下の対応が必要です。 技術情報 3140245 WinHTTP が Windows での既定のセキュリティで保護された
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く