Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Joel Falcou
Le 26/08/2011 17:56, Eric Niebler a écrit : On 8/26/2011 11:44 AM, Eric Niebler wrote: Proto will compute the domain of m*v to be matrix. It will use matrix_domain's generator to post-process the new expression. That generator can do anything -- including placing the new expression in the vector

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Joel Falcou
Le 26/08/2011 17:44, Eric Niebler a écrit : On 8/26/2011 11:23 AM, Joel Falcou wrote: On 26/08/2011 17:18, Eric Niebler wrote: Why can't you use a grammar to recognize patterns like these and take appropriate action? we do. Another point is that container based operation in our system need to

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Brandon Kohn
On 8/26/2011 11:31 AM, Joel Falcou wrote: These coudl be grammar. Anytime you want to have somethign selecting somethign based on expression structure, it is a grammar. Such metafonction systems ar eusualyl brittle or not extensible enough. Originally I did have more of this tied into grammar,

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Eric Niebler
On 8/26/2011 11:44 AM, Eric Niebler wrote: > Proto will > compute the domain of m*v to be matrix. It will use matrix_domain's > generator to post-process the new expression. That generator can do > anything -- including placing the new expression in the vector domain. > In short, there is no requir

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Eric Niebler
On 8/26/2011 11:23 AM, Joel Falcou wrote: > On 26/08/2011 17:18, Eric Niebler wrote: >> Why can't you use a grammar to recognize patterns like these and >> take appropriate action? > > we do. Another point is that container based operation in our system > need to know the number of dimension of t

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Joel Falcou
On 26/08/2011 17:27, Brandon Kohn wrote: I solved this kind of problem by tagging the various types in traits structs and then embedding these traits in the transforms for the various operations. Here are examples of my expression, grammar, and binary function definitions: https://github.com/br

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Mathias Gaunard
On 26/08/2011 16:45, Eric Niebler wrote: Before I answer, can you tell me why you've decided to put vector and matrix operations into separate domains? This seems like an artificial and unnecessary separation to me. Some operations are valid on vectors but not on matrices. Our grammar enforce

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Brandon Kohn
On 8/26/2011 11:18 AM, Eric Niebler wrote: On 8/26/2011 10:56 AM, Joel Falcou wrote: On 26/08/2011 16:45, Eric Niebler wrote: Before I answer, can you tell me why you've decided to put vector and matrix operations into separate domains? This seems like an artificial and unnecessary separation t

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Joel Falcou
On 26/08/2011 17:18, Eric Niebler wrote: Why can't you use a grammar to recognize patterns like these and take appropriate action? we do. Another point is that container based operation in our system need to know the number of dimension of the container. Domains carry this dimensions informat

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Eric Niebler
On 8/26/2011 10:56 AM, Joel Falcou wrote: > On 26/08/2011 16:45, Eric Niebler wrote: >> Before I answer, can you tell me why you've decided to put vector and >> matrix operations into separate domains? This seems like an artificial >> and unnecessary separation to me. > > We have a system of speci

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Joel Falcou
On 26/08/2011 16:45, Eric Niebler wrote: Before I answer, can you tell me why you've decided to put vector and matrix operations into separate domains? This seems like an artificial and unnecessary separation to me. We have a system of specialisation where being able to make this distinction a

Re: [proto] Defining the result domain of a proto operator

2011-08-26 Thread Eric Niebler
On 8/26/2011 10:25 AM, Mathias Gaunard wrote: > With the following Proto expression: > m * v; > > with m in the matrix_domain and v in the vector_domain. > vector_domain is a sub-domain of matrix_domain, so the common domain is > matrix_domain. > > We want the '*' operation to model the matrix mu

[proto] Defining the result domain of a proto operator

2011-08-26 Thread Mathias Gaunard
With the following Proto expression: m * v; with m in the matrix_domain and v in the vector_domain. vector_domain is a sub-domain of matrix_domain, so the common domain is matrix_domain. We want the '*' operation to model the matrix multiplication. matrix times vector yields a vector. Therefor