The approach you are describing should be working and it is hard to tell why it is not in your case without the actual code.
You can use the
~ operator to obtain the involution vector of a
SemanticPointer instance. But in an actual Nengo network, you have to use the transform matrix on the connection appropriately or if it is the input to a
CircularConvolution, set one of the
invert_* arguments to
In the general case circular convolution will change the length of the vector. I believe that for unit length input vectors the output vector will at least be unit length, but I might be wrong on this one. There a certain unit vectors that have the property of being “unitary”, meaning that when they are convolved with another vector v, the output vector will have the same length as v.