예제 #1
0
        public FrontendRelease(IFrontend frontend, SemanticVersion version)
        {
            #region Preconditions

            if (frontend == null) throw new ArgumentNullException(nameof(frontend));

            #endregion

            FrontendId = frontend.Id;
            FrontendName = frontend.Name;
            Version = version;
        }
예제 #2
0
 public (DataAndLayout <T1>, DataAndLayout <T2>) GetDataAndLayout <T1, T2>(IFrontend <T1> trgt, IFrontend <T2> src)
 {
     return(((NdArray <T1>)trgt).Backend.DataAndLayout, ((NdArray <T2>)src).Backend.DataAndLayout);
 }
예제 #3
0
 public void Truncate(IFrontend <T> trgt, IFrontend <T> src)
 {
     var(dataLayoutTrgt, dataLayout) = ElemwiseDataAndLayout(trgt, src);
     ScalarOps.Truncate(dataLayoutTrgt, dataLayout);
 }
예제 #4
0
 public void Sinh(IFrontend <T> trgt, IFrontend <T> src)
 {
     var(dataLayoutTrgt, dataLayout) = ElemwiseDataAndLayout(trgt, src);
     ScalarOps.Sinh(dataLayoutTrgt, dataLayout);
 }
예제 #5
0
 public void Pow(IFrontend <T> trgt, IFrontend <T> lhs, IFrontend <T> rhs)
 {
     var(dataLayoutTrgt, dataLayout1, dataLayout2) = ElemwiseDataAndLayout <T, T, T>(trgt, lhs, rhs);
     ScalarOps.Pow(dataLayoutTrgt, dataLayout1, dataLayout2);
 }
예제 #6
0
 public static void Setup(IFrontend frontend)
 {
     _frontend = frontend;
 }
예제 #7
0
 public void Xor(IFrontend <bool> trgt, IFrontend <bool> lhs, IFrontend <bool> rhs)
 {
     var(dataLayoutTrgt, dataLayout1, dataLayout2) = ElemwiseDataAndLayout(trgt, lhs, rhs);
     ScalarOps.Xor(dataLayoutTrgt, dataLayout1, dataLayout2);
 }
예제 #8
0
 public void ProductLastAxis(IFrontend <T> trgt, IFrontend <T> src)
 {
     var(dataLayoutTrgt, dataLayout) = GetDataAndLayout(trgt, src);
     ScalarOps.ProductLastAxis(dataLayoutTrgt, dataLayout);
 }
예제 #9
0
 public void UnaryMinus(IFrontend <T> trgt, IFrontend <T> src)
 {
     var(t, s) = ElemwiseDataAndLayout(trgt, src);
     ScalarOps.UnaryMinus(t, s);
 }
예제 #10
0
        public void FillIncrementing(T start, T step, IFrontend <T> trgt)
        {
            var dataAndLayout = ElemwiseDataAndLayout(trgt);

            ScalarOps.FillIncrementing(start, step, dataAndLayout);
        }
예제 #11
0
 public static (DataAndLayout <TR>, DataAndLayout <TA>, DataAndLayout <TB>, DataAndLayout <TC>) ElemwiseDataAndLayout <TR, TA, TB, TC>(IFrontend <TR> trgt, IFrontend <TA> a, IFrontend <TB> b, IFrontend <TC> c)
 {
     var(tl, ls) = ElemwiseLayouts(trgt.Layout, new Layout[] { a.Layout, b.Layout, c.Layout });
     return(trgt.Relayout(tl).Backend.DataAndLayout, a.Relayout(ls[0]).Backend.DataAndLayout, b.Relayout(ls[1]).Backend.DataAndLayout, c.Relayout(ls[2]).Backend.DataAndLayout);
 }
예제 #12
0
 public static (DataAndLayout <T1>, DataAndLayout <T2>) ElemwiseDataAndLayout <T1, T2>(IFrontend <T1> trgt, IFrontend <T2> src)
 {
     var(tl, ls) = ElemwiseLayouts(trgt.Layout, new Layout[] { src.Layout });
     return(trgt.Relayout(tl).Backend.DataAndLayout, src.Relayout(ls[0]).Backend.DataAndLayout);
 }
예제 #13
0
 /// <summary>
 /// 添加玩家
 /// </summary>
 /// <param name="frontend">实现接口的前端对象,Game会通过这个对象与前端进行沟通。</param>
 /// <param name="deck">玩家使用的卡组,数组的第一个整数代表玩家使用的角色卡,后30个是玩家使用的卡组。</param>
 public void addPlayer(IFrontend frontend, int[] deck)
 {
     throw new NotImplementedException();
 }
예제 #14
0
 /// <summary>
 /// DeAssembly constructor. Setup Frontend and Backend.
 /// </summary>
 public DeAssembly()
 {
     activeFrontend = new FrontendMIPS();
     activeBackend = new BackendC();
 }
예제 #15
0
 public void AnyLastAxis(IFrontend <bool> trgt, IFrontend <bool> src)
 {
     var(dataLayoutTrgt, dataLayout) = GetDataAndLayout(trgt, src);
     ScalarOps.AnyLastAxis(dataLayoutTrgt, dataLayout);
 }
예제 #16
0
 public void IsFinite <TP>(IFrontend <bool> trgt, IFrontend <TP> src)
 {
     var(dataLayoutTrgt, dataLayout) = ElemwiseDataAndLayout(trgt, src);
     ScalarOps.IsFinite <TP>(dataLayoutTrgt, dataLayout);
 }
예제 #17
0
 public void Less <TP>(IFrontend <bool> trgt, IFrontend <TP> src1, IFrontend <TP> src2)
 {
     var(dataLayoutTrgt, dataLayout1, dataLayout2) = ElemwiseDataAndLayout(trgt, src1, src2);
     ScalarOps.Less(dataLayoutTrgt, dataLayout1, dataLayout2);
 }
예제 #18
0
 public void Negate(IFrontend <bool> trgt, IFrontend <bool> src)
 {
     var(dataLayoutTrgt, dataLayout) = GetDataAndLayout(trgt, src);
     ScalarOps.Negate(dataLayoutTrgt, dataLayout);
 }
예제 #19
0
 public void GreaterOrEqual <TP>(IFrontend <bool> trgt, IFrontend <TP> src1, IFrontend <TP> src2)
 {
     var(dataLayoutTrgt, dataLayout1, dataLayout2) = ElemwiseDataAndLayout(trgt, src1, src2);
     ScalarOps.GreaterOrEqual(dataLayoutTrgt, dataLayout1, dataLayout2);
 }
예제 #20
0
 public void CountTrueLastAxis(IFrontend <int> trgt, IFrontend <bool> src)
 {
     var(dataLayoutTrgt, dataLayout) = GetDataAndLayout(trgt, src);
     ScalarOps.CountTrueLastAxis(dataLayoutTrgt, dataLayout);
 }
예제 #21
0
 public void Modulo(IFrontend <T> trgt, IFrontend <T> a, IFrontend <T> b)
 {
     var(dataLayoutTrgt, dataLayoutA, dataLayoutB) = ElemwiseDataAndLayout <T, T, T>(trgt, a, b);
     ScalarOps.Modulo(dataLayoutTrgt, dataLayoutA, dataLayoutB);
 }