~haggai-eran/nux/rtl-rebased

« back to all changes in this revision

Viewing changes to NuxCore/Math/MathUtility.h

  • Committer: Jay Taoko
  • Date: 2011-10-21 23:49:15 UTC
  • mfrom: (508.1.2 nux-20)
  • Revision ID: jay.taoko@canonical.com-20111021234915-hnzakb5ndebica8i
* Removed custom Nux types: t_u32, t_s32, t_bool, ...

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
 
56
56
  template<typename T> inline T Align (const T Ptr, int Alignment)
57
57
  {
58
 
    return (T) (((NUX_POINTER) Ptr + Alignment - 1) & ~ (Alignment - 1));
 
58
    return (T) (((unsigned int) Ptr + Alignment - 1) & ~ (Alignment - 1));
59
59
  }
60
60
 
61
61
  //Bitwise rotation on the left.
174
174
    return std::rand() % max_random;
175
175
  }
176
176
 
177
 
  inline t_size DiffPointer (void *Ptr0, void *Ptr1)
 
177
  inline size_t DiffPointer (void *Ptr0, void *Ptr1)
178
178
  {
179
 
    if ((t_size) Ptr0 >= (t_size) Ptr1) return (t_size) ((t_size) Ptr0 - (t_size) Ptr1);
 
179
    if ((size_t) Ptr0 >= (size_t) Ptr1) return (size_t) ((size_t) Ptr0 - (size_t) Ptr1);
180
180
 
181
 
    return (t_size) ((t_size) Ptr1 - (t_size) Ptr0);
 
181
    return (size_t) ((size_t) Ptr1 - (size_t) Ptr0);
182
182
  }
183
183
  // Dangerous to use!
184
 
  template<typename T> inline T SubstractPointer (void *Ptr, t_size Value)
 
184
  template<typename T> inline T SubstractPointer (void *Ptr, size_t Value)
185
185
  {
186
 
    return (T) (((t_size) Ptr) - Value);
 
186
    return (T) (((size_t) Ptr) - Value);
187
187
  }
188
 
  template<typename T> inline T AddPointer (void *Ptr, t_size Value)
 
188
  template<typename T> inline T AddPointer (void *Ptr, size_t Value)
189
189
  {
190
 
    return (T) (((t_size) Ptr) + Value);
 
190
    return (T) (((size_t) Ptr) + Value);
191
191
  }
192
192
 
193
193
  //! Round up to the nearest multiple of Alignment that is greater or equal to Value
221
221
      Revert Byte order
222
222
      0x0011 -> 0x1100
223
223
  */
224
 
  inline t_u16 ReverseByteOrdering (t_u16 value)
 
224
  inline unsigned short ReverseByteOrdering (unsigned short value)
225
225
  {
226
 
    t_u16 temp;
 
226
    unsigned short temp;
227
227
    t_u8 *src = (t_u8 *) &value;
228
228
    t_u8 *dest = (t_u8 *) &temp;
229
229
 
237
237
      Revert Byte order
238
238
      0x00112233 -> 0x33221100
239
239
  */
240
 
  inline t_u32 ReverseByteOrdering (t_u32 value)
 
240
  inline unsigned int ReverseByteOrdering (unsigned int value)
241
241
  {
242
 
    t_u32 temp;
 
242
    unsigned int temp;
243
243
    t_u8 *src = (t_u8 *) &value;
244
244
    t_u8 *dest = (t_u8 *) &temp;
245
245
 
255
255
      Revert Byte order
256
256
      0x0011223344556677 -> 0x7766554433221100
257
257
  */
258
 
  inline t_u64 ReverseByteOrdering (t_u64 value)
 
258
  inline unsigned long long ReverseByteOrdering (unsigned long long value)
259
259
  {
260
 
    t_u64 temp;
 
260
    unsigned long long temp;
261
261
    t_u8 *src = (t_u8 *) &value;
262
262
    t_u8 *dest = (t_u8 *) &temp;
263
263