Ошибка типа Rust ndarray: привязка черты не реализована - PullRequest
0 голосов
/ 19 января 2020

Я использую ndarray и ndarray_einsum_beta для mimi c numpy .einsum .

Я, кажется, получаю ошибка типа при попытке реализовать базовый пример c:

let m1 = arr1(&[1, 2]);
let m2 = arr2(&[[1, 2], [3, 4]]);
println!("{:?}", einsum("i,ij->j", &[&m1, &m2]));

Для обоих m1 и m2 Я получаю ошибку:

ограничение черты ndarray::ArrayBase<ndarray::OwnedRepr<{integer}>, ndarray::Dim<[usize; 1]>>: ndarray_einsum_beta::ArrayLike<_> не удовлетворен

черта ndarray_einsum_beta::ArrayLike<_> не реализована для ndarray::ArrayBase<ndarray::OwnedRepr<{integer}>, ndarray::Dim<[usize; 1]>>

примечание: требуется для приведения к объекту типа dyn ndarray_einsum_beta::ArrayLike<_> ржавчина c (E0277)

Как показано в консоли при компиляции: enter image description here

Всего main.rs:

use ndarray::prelude::*;
use ndarray_einsum_beta::*;

fn main() {
    println!("Hello, world!");
    let m1 = arr1(&[1, 2]);
    let m2 = arr2(&[[1, 2], [3, 4]]);
    println!("{:?}", einsum("i,ij->j", &[&m1, &m2]));
}

Всего Cargo.toml:

[package]
name = "clean_slate"
version = "0.1.0"
authors = ["Jonathan <jonathanwoollettlight@gmail.com>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
ndarray = "0.13.0"
ndarray_einsum_beta = "0.4.4"

Я действительно не могу понять, что я сделал здесь неправильно, сейчас я думаю, что, возможно, плохая версия комбинации ndarray и ndarray_eisum_beta.

Любая помощь будет с благодарностью.

1 Ответ

1 голос
/ 19 января 2020

Видимо ndarray_einsum_beta зависит от ndarray-0.12. Изменение зависимостей вашего проекта решает проблему:

[dependencies]
ndarray = "0.12"
ndarray_einsum_beta = "0.4.4"
...