strassen

    3

    5答えて

    私はC++での行列の乗算にStrassen algorithmを実装しようとしたが、結果は私が期待したもの、それはないです。ご覧のように、strassenは常に標準実装より時間がかかり、2の累乗からの次元のみが標準実装と同じくらい速くなります。何が悪かったのか? matrix mult_strassen(matrix a, matrix b) { if (a.dim() <= cut)

    0

    2答えて

    StrassenのアルゴリズムをC++の行列乗算に実装しようとしていますが、2つの行列をそれぞれ4つの部分に一定時間で分割する方法を見つけたいと思います。ここで私はそうやっている現在の方法は次のとおりです。 for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ A11[i][j] = a[i][j]; A1

    4

    4答えて

    私はStrassen's Algorithmの実装をC言語で探していましたが、最後にこのコードが見つかりました。 multiply関数を使用するには: void multiply(int n, matrix a, matrix b, matrix c, matrix d); 二つの行列a、bを乗算し(dが中間行列)cに結果を置きます。 typedef union _matrix {

    6

    2答えて

    私はPythonを使ってStrassenの行列乗算を実装しています。分割ステップでは、より大きな行列をより小さな部分行列に分割する。行列を分割する組み込みnumpy関数はありますか?

    1

    3答えて

    実験として、Strassen Matrix Multiplication Algorithmを実装して、本当に大きなnの高速なコードにつながるかどうかを確認しました。私の驚きに https://github.com/wcochran/strassen_multiplier/blob/master/mm.c それは大きなnのが速く方法でした。例えば、n = 1024の場合 は、従来の方法を使用して1

    3

    2答えて

    私はstrassenのアルゴリズムのための奇数行列の問題に取り組もうとしています。私の実装はある時点で再帰を切り捨て、Qと呼んで標準実装に切り替えます。したがって、静的なパディングを行う際には、実際には2の次のべき乗までパディングする必要はありません。入力行列の次元よりも最小のm * 2^kまでパッドする必要があります。 これを実装する際に問題が発生しています。これは、主に効率的なものがわからない

    -4

    1答えて

    教授Caesarは、Strassenのアルゴリズムよりも漸進的に速い の行列乗算アルゴリズムを開発したいと考えています。彼のアルゴリズムは、各マトリックスをサイズn/4 x n/4の断片に分割し、分割と結合のステップを一緒にすると、シータ(n^2)時間になる分割と征服の方法を使用します。