CからPythonを呼び出す:実践ガイド

2025-05-29
CからPythonを呼び出す:実践ガイド

この記事は、Cコード内でPython関数を呼び出す方法を実践的なステップバイステップガイドで説明します。基本から始まり、Python.hヘッダーファイルのインクルード、Cコードのコンパイル、Py_InitializeとPy_Finalizeを使ったPythonインタープリターの初期化と終了など、Linux/Macでの環境設定をカバーしています。Pythonモジュールのロード方法、関数属性の取得方法、関数呼び出し(引数なしと引数ありの両方)、メモリクリーンアップ方法を詳しく説明します。具体的なコード例を通して、CプログラムにPython関数を統合し、CとPythonコードのシームレスな相互作用を実現する方法を学習します。

続きを読む

整数分割と整数組成へのプログラミング入門

2025-05-18
整数分割と整数組成へのプログラミング入門

LeetArxivは新しいシリーズ「プログラマーが知っておくべき組合せ論」の第1章として、整数分割と整数組成を紹介しています。この記事では、観察とパターン認識を通して、これらの概念を分かりやすく説明しています。C言語のコードが提供されており、二項係数と二分探索を用いて効率的に弱組成を生成・列挙することができます。

続きを読む
開発

LeetArxiv:1931年の整数分解アルゴリズムを再実装

2025-03-30
LeetArxiv:1931年の整数分解アルゴリズムを再実装

LeetArxivは、連分数に基づく、1931年のLehmerとPowersによる整数分解アルゴリズムを再現しました。この記事では、平方根の連分数展開の計算方法、そして得られた係数(PとA)を用いた因数分解の方法を詳細に説明しています。ステップバイステップの例を通してアルゴリズムの詳細を示し、13290059の因数分解に成功しています。このアルゴリズムは、歴史的に重要なものであり、部分指数時間での因数分解を初めて達成したものです。

続きを読む

LeetArxiv: Arxiv論文のためのLeetCode - 研究のための実践的なコーディングガイド

2025-02-24
LeetArxiv: Arxiv論文のためのLeetCode - 研究のための実践的なコーディングガイド

LeetArxivは、研究職への転身を図るプログラマーを対象に、Arxiv論文に基づいた毎週のステップバイステップのコーディングガイドを提供しています。ケーススタディでは、1981年の論文からのAAN離散コサイン変換(DCT)の実装に焦点を当てています。このガイドは、DCT-IIの方程式とAAN最適化(高コストなコサイン計算の削減、対称性の活用、事前に計算された定数の使用、並列処理の有効化)を詳細に説明するC言語実装(他の言語にも容易に適用可能)を提供しています。このチュートリアルでは、アルゴリズムのフローグラフとコードを網羅しており、実践的なコーディング演習を通して、複雑な研究をアクセスしやすくしています。

続きを読む

有限体アセンブリを用いたCPU上でのGPUエミュレーション

2025-01-17
有限体アセンブリを用いたCPU上でのGPUエミュレーション

この記事では、CPU上でGPUをエミュレートすることを可能にする新しいプログラミング言語、Finite Field Assembly (FF-asm) を紹介します。FF-asmは再帰的計算パラダイムを使用しており、SIMDベクトル化やOpenMP並列化は必要ありません。有限体理論と合同式に基づいたカスタム数学システムを作成することで、CPU上で大規模な並列計算を実現します。この記事では、FF-asmでの加算と乗算をステップバイステップで示すコード例を提供し、GPUエミュレーションの可能性を示しています。

続きを読む