Я хотел бы знать, возможно ли определить пользователем умножение встроенной матрицы Matlab mtimes
(или хорошую эквивалентность в библиотеке линейной алгебры с открытым исходным кодом в C / C ++).
Цель: добавить шаг цензуры между операторским продуктом и суммой. В частности, исходное матричное умножение mtimes: C = mtimes(A, B)
делает следующее
c_{i,j} := \sum_{k} a_{i,k} * b{k,j}
,
поверх которого мне нужно определить моего оператора my_mtimes: C = my_mtimes(A,B)
так, чтобы
c_{i,j} := \sum_{k} max(abs(a_{i,k} * b{k,j})-d, 0)
.
Перед выполнением sum
продукт с постоянным порогом d
подвергается цензуре.
Вопрос:
Я не знаю, как / если возможно редактировать встроенную функцию mtimes
в Matlab. Мне трудно найти исходный код.
Существует ли библиотека C / C ++ с открытым исходным кодом, которая эффективно выполняет подпрограмму имитации разреженного умножения матриц mkl_scsrmm
и которую мы можем легко переписать в CUDA.
Я пытался отследить исходный код библиотеки BLAS, но, похоже, mkl_scsrmm
не является открытым исходным кодом. Любой комментарий будет полезен и приветствуется.