Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中乘以DiffSharp的DM和DV?_C#_Diffsharp - Fatal编程技术网

如何在C#中乘以DiffSharp的DM和DV?

如何在C#中乘以DiffSharp的DM和DV?,c#,diffsharp,C#,Diffsharp,我有以下代码: using DiffSharp.Interop.Float64; public class Layer { public DM W { get; set; } public DV b { get; set; } public Func<DV,DV> a { get; set; } public DV Compute(DV v) { return a(W * v); /

我有以下代码:

    using DiffSharp.Interop.Float64;

public class Layer
{
       public DM W { get; set; }
       public DV b { get; set; }
       public Func<DV,DV> a { get; set; }

       public DV Compute(DV v)
       {
          return a(W * v); // This Line
       }
}
使用DiffSharp.Interop.Float64;
公共类层
{
公共DM W{get;set;}
公共dvb{get;set;}
公共函数a{get;set;}
公共DV计算(DV v)
{
返回a(W*v);//此行
}
}

问题是语句
W*v
,它说
“运算符*不能应用于DM和DV类型的操作数”
。在F#中,它们以这种方式相乘。如何在C#中将这个矩阵和向量相乘?

不确定向量在f#中是如何实现的,但在C#中,您需要加载System.Windows.vector程序集。您可以检查:查看源代码:注意,它定义了许多多应用运算符,但没有一个是
DM*DV
。也许库的作者无意中从互操作库中遗漏了您想要的运算符?
DM
DV
是两种不同的类型。你的
Compute
方法要么需要做一些特殊的事情,要么调用
DV
的特殊方法(在
DM
中做一些事情,不管它在做什么)。@EricLippert你完全正确。DV*DV存在。DM*DM存在,但DM*DV不存在。非常感谢你。我想我应该提出一个问题?不确定向量在f#中是如何实现的,但在c#中,您需要加载System.Windows.vector程序集。您可以检查:查看源代码:注意它定义了许多多应用运算符,但没有一个是
DM*DV
。也许库的作者无意中从互操作库中遗漏了您想要的运算符?
DM
DV
是两种不同的类型。你的
Compute
方法要么需要做一些特殊的事情,要么调用
DV
的特殊方法(在
DM
中做一些事情,不管它在做什么)。@EricLippert你完全正确。DV*DV存在。DM*DM存在,但DM*DV不存在。非常感谢你。我想我应该提出一个问题?