123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- using System;
- using System.Collections.Generic;
- using System.Numerics;
- using System.Runtime.Intrinsics;
- using System.Text;
- namespace FxpConvert.Common
- {
- public interface ICalc
- {
- /// <summary>
- /// 加法
- /// </summary>
- public IAdd Add { get; }
- /// <summary>
- /// 减法
- /// </summary>
- public ISubtract Subtract { get; }
- /// <summary>
- /// 乘法
- /// </summary>
- public IMultiply Multiply { get; }
- /// <summary>
- /// 除法
- /// </summary>
- public IDivision Division { get; }
- /// <summary>
- /// FFT
- /// </summary>
- public IFFT FFT { get; }
- /// <summary>
- /// Clamp
- /// </summary>
- public IClamp Clamp { get; }
- /// <summary>
- /// 数组求和
- /// </summary>
- public IArraySum Sum { get; }
- public void Fill(ref float result, float value, uint count);
- public void Fill(ref double result, double value, uint count);
- }
- public interface IArraySum
- {
- public float Sum(ref float value,uint count);
- public double Sum(ref double value,uint count);
- public float Rms(ref float value, uint count);
- public double Rms(ref double value,uint count);
- }
- public interface IClamp
- {
- public void Clamp(ref float value, float min, float max, uint count);
- public void Clamp(ref double value, double min, double max, uint count);
- public void Clamp(ref float value,ref float min,ref float max, uint count);
- public void Clamp(ref double value,ref double min,ref double max, uint count);
- public void In(ref float value, float min, float max, uint count,ref int result);
- public void In(ref double value, double min, double max, uint count, ref long result);
- public void In(ref float value, ref float min, ref float max, uint count, ref int result);
- public void In(ref double value, ref double min, ref double max, uint count, ref long result);
- }
- public interface IFFT
- {
- public void FFT(double[] real, double[] imaginary);
- public void FFT(float[] real, float[] imaginary);
- public void IFFT(double[] real, double[] imaginary);
- public void IFFT(float[] real, float[] imaginary);
- }
- public interface IAdd
- {
- public void Add(ref float left, float right, uint count, ref float result);
- public void Add(ref float left, ref float right, uint count, ref float result);
- public void Add(ref float left, float right, uint count);
- public void Add(ref float left, ref float right, uint count);
- public void Add(ref double left, double right, uint count, ref double result);
- public void Add(ref double left, ref double right, uint count, ref double result);
- public void Add(ref double left, double right, uint count);
- public void Add(ref double left, ref double right, uint count);
- }
- public interface ISubtract
- {
- public void Subtract(ref float left, float right, uint count, ref float result);
- public void Subtract(ref float left, ref float right, uint count, ref float result);
- public void Subtract(ref float left, float right, uint count);
- public void Subtract(ref float left, ref float right, uint count);
- public void Subtract(ref double left, double right, uint count, ref double result);
- public void Subtract(ref double left, ref double right, uint count, ref double result);
- public void Subtract(ref double left, double right, uint count);
- public void Subtract(ref double left, ref double right, uint count);
- }
- public interface IMultiply
- {
- public void Multiply(ref float left, float right, uint count, ref float result);
- public void Multiply(ref float left, ref float right, uint count, ref float result);
- public void Multiply(ref float left, float right, uint count);
- public void Multiply(ref float left, ref float right, uint count);
- public void Multiply(ref double left, double right, uint count, ref double result);
- public void Multiply(ref double left, ref double right, uint count, ref double result);
- public void Multiply(ref double left, double right, uint count);
- public void Multiply(ref double left, ref double right, uint count);
- }
- public interface IDivision
- {
- public void Division(ref float left, float right, uint count, ref float result);
- public void Division(ref float left, ref float right, uint count, ref float result);
- public void Division(ref float left, float right, uint count);
- public void Division(ref float left, ref float right, uint count);
- public void Division(ref double left, double right, uint count, ref double result);
- public void Division(ref double left, ref double right, uint count, ref double result);
- public void Division(ref double left, double right, uint count);
- public void Division(ref double left, ref double right, uint count);
- }
- }
|