Dinâmica C # 4.0: uma solução potencial de alto desempenho para genéricos numéricos?

Depois de me deparar com esse problema ao tentar implementar um genéricoVector2<int/float/double> em c #, fiz várias investigações sobre esse problema, também descritas nesta pergunta:

Genéricos menos genéricos? Uma possível solução para aritmética em genéricos C #

Esses links contêm mais informações básicas e abordagens fascinantes de soluções:

http://www.yoda.arachsys.com/csharp/genericoperators.html

http://www.codeproject.com/KB/cs/genericnumerics.aspx

Agora que o C # 4.0 saiu com seu novo e versátildynamic tipo, minha pergunta para a brilhante comunidade SO, é a seguinte: é uma ferramenta que poderia ser usada talvez para criar Vector / Matrix / etc de alto desempenho, genérico. tipos numéricos?

Claramente, um Vector2 poderia ser construído da seguinte maneira:

public struct Vector2
{
    public dynamic X;
    public dynamic Y;

    public Vector2(dynamic x, dynamic y)
    {
        this.X = x;
        this.Y = y;
    }

    public static Vector2 operator+(Vector2 a, Vector2 b)
    {
        return new Vector2(a.X + b.X, a.Y + b.Y);
    }
}

mas com essa abordagem, não temos restrição de tipo aqui, então você pode fazer umaVector2(3, 12.4572). Existe uma maneira de misturar membros dinâmicos com um parâmetro de tipoVector2<int> para executar nossas operações matemáticas, como seria feito comints?

Talvez alguma forma de fundição possa ser usada para garantirthis.X é umT, embora eu não saiba como isso funcionaria.

questionAnswers(1)

yourAnswerToTheQuestion