Ruben,

1) Is easily solved by replacing void with your own custom enum 
(127biterror_t) or something equivalent, and returning that whenever you 
perform an operation.  It should be fairly trivial to check for error 
cases like overflow, divide by 0, etc. in software and return the 
appropriate code that you define (e.g. EOVERFLOW).  Normally on the 
microprocessor, there is a flag that is set when an arithmetic operation 
causes an overflow, but taking advantage of that forces you to 
specialize your implementation for specific hardware, making it less 
portable

2) Most likely, you should implement the most common operations that you 
think will need in the near future.  You will probably want 
addition/subtraction, multiplication/division, negation(if you plan on 
supporting signed numbers) and possibly some bit-wise operations if you 
think they are valuable(bitwise AND,OR,XOR).  These should probably get 
you 95% of your use cases unless you are needing to do something unusual 
with the 128 bit number.

To my knowledge, there is no "built-in" way of handling new data types 
as there is no way the compiler could determine how the basic operations 
should be performed.  The compiler couldn't determine if you wanted a 
128 bit long integer VS a 4x4 matrix of 8-bit number multiplication for 
example.

Hope this helps,
-Paul

On 1/20/2010 10:16 AM, Ruben Rios del Pozo wrote:
> Thank you Arik for your quick answer :-),
>
>    
>> But basically you will still have to write a function. Although I don't see
>> a problem in that:
>> void AddTwo128BitNumbers(VeryBig first, VeryBig second, VeryBig *result);
>>
>>      
> Either I see a problem in writing such a function at first but if I
> look at it a little bit more in detail, there are a few things that
> make me feel unconfortable:
>
> 1.- Dealing with overflows and that kind of stuff
> 2.- Now is addition but maybe tomorrow I need a division or any other
> arithmetic operation
>
> That's why I was wondering if there was a built-in way of handling this.
> Once more, thank you!
> _______________________________________________
> Tinyos-help mailing list
> [email protected]
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>    
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to