我原以为GL_FIXED它更快,但iPhone文件实际上说要使用GL_FLOAT因为GL_FIXED必须转换为GL_FLOAT.在Android上是一样的吗?我想它会因电话而异,但最近流行的(Nexus One,Droid/Milestone等)呢?
奖励积分:这似乎完全没有记录(例如搜索谷歌GL_FIXED!)但是'点'在GL_FIXED哪里?即多少(GL_FIXED)1值得?
我想在固定点周围连续旋转360度图像.我已经看过几个例子,例如:
RotateAnimation anim = new RotateAnimation(0, 360,150,150);
anim.setInterpolator(new LinearInterpolator());
anim.setRepeatCount(Animation.INFINITE);
anim.setDuration(2000);
[imageview].startAnimation(anim);
这会旋转图像,但它会在弧/圆形路径上旋转.IE浏览器.图像以圆周运动方式移动/旋转,但不会固定在它的起始位置.
我基本上想要的是模仿WindMill手臂的旋转.
有什么想法吗?
所以我想正确地将-1到+1范围内的浮点数缩放为AUGraph所期望的格式,其格式设置如下:
size_t bytesPerSample = sizeof (AudioUnitSampleType); // is 4 bytes
stereoStreamFormat.mFormatID          = kAudioFormatLinearPCM;
stereoStreamFormat.mFormatFlags       = kAudioFormatFlagsAudioUnitCanonical;
stereoStreamFormat.mBytesPerPacket    = bytesPerSample;
stereoStreamFormat.mFramesPerPacket   = 1;
stereoStreamFormat.mBytesPerFrame     = bytesPerSample;
stereoStreamFormat.mChannelsPerFrame  = 2;                    
stereoStreamFormat.mBitsPerChannel    = 8 * bytesPerSample;
stereoStreamFormat.mSampleRate        = graphSampleRate; // 44.1k
这个问题帮助我设置了图形,但是当我像这样抛出一个浮点数:
sampleValueLeft = (Fixed) (floatVal * 32767.0f); 
// there doesn't seem to be any difference whether i cast into 
// SInt16 or SInt32 (which the Fixed type is defined to be)..
它工作,信号听起来不错,但非常安静.所以我做错了吗?通过更大的数字缩放会使信号变得混乱.听起来不像剪辑,输出量不会更高.我不打算深入研究定点数学,我所需要的只是一个单线程,它投入到正确的格式.
谢谢!
编辑:我一直在使用不同的流格式,之前我无法弄清楚如何正确使用立体声信号.有了这个不同的设置,我对输出音量没有任何问题,所以我认为增益问题必须与缩放...
我在过去三天一直在努力了解浮点和定点表示之间的确切差异.我很困惑阅读材料,我无法确定什么是对的,什么是错的.
其中一个问题是"精确","尾数","非规范化","下溢"等技术术语的含义.
任何人都可以通过例子给出差异吗?
我迄今能够找到的要点(能够清楚地理解)如下: -
浮点 - 
1. 优势   提供非常大的范围
2. 缺点减少大数量    
固定点 - 
1. 优势数字准确表示  (涉及'货币'时使用)
2.缺点提供非常有限的范围   
但我知道存在很多差异(主要是优点和缺点).任何人都可以列出解释吗?
嗨我正在为嵌入式系统实现一些定点数学的东西,我正在尝试将两个16.16定点数相乘而不创建一个64位临时数.到目前为止,我提出的代码生成的指令最少.
int multiply(int x, int y){
    int result;
    long long temp = x;
    temp *= y;
    temp >>= 16;
    result = temp;
    return result;
}
这段代码的问题在于它使用了一个临时的64位整数,这似乎会产生错误的汇编代码.我正在尝试制作一个使用两个32位整数而不是64位整数的系统.有人知道怎么做吗?
例如,我有浮动1.1111111111,需要得到11111111111和10.
我想避免使用函数,因为我需要它来显示度量标准前缀.
使用字符串看起来很简单,我只是不确定它是否适合JavaScript.
只是一些愚蠢的想法,但如果计算机能够有效地计算256位算术,比如他们有256位架构,我想我们可以取消浮点.我也想知道,如果有任何理由要超越256位架构?我的基础是相当脆弱的,但我相信如果我错了你就会把我直截了当;)这是我的想法:
您可以使用256位类型,使用127或128位作为整数,使用127或128位作为小数值,然后使用符号位.如果您的硬件能够计算,存储和移动这些大数字而没有任何问题,我认为您将设置为处理您遇到的任何计算.
一个例子:如果您使用长度,并且您以米为单位表示所有值,则最小值(2 ^ -128米)将小于普朗克长度,最大值(2 ^ 127米)将更大比可观察宇宙的直径.想象一下,计算精度小于普朗克长度的光年数?
好吧,这只是一个例子,但我很难想到任何可能保证数量大于小的情况.有什么想法吗?我没有考虑定点运算是否存在问题?创建256位架构是否存在问题?
floating-point precision performance fixed-point cpu-architecture
我在文件中有定点数字,每行一个,这种格式S9(6)V9(2)但是当它们实际被读取时,我non numeric在尝试将它们放入数学运算时遇到错误.更重要的是,当我尝试在程序中显示它们时,在文件中写为567123.45的数字将保存在变量中作为+567123.04.例如,文件123.45中的数字在变量中保存为+123.45.00,并且'WS-VALUE' not numeric: '123.45 0'在数学运算期间会引发以下错误.这是为什么?我正在使用OpenCobolIDE 4.7.4 for Windows.
编辑:文件具有由新行分隔的以下格式的记录(READ记录后的操作记录读取):
  01 WS-OPERATION.
     05 WS-ID PIC A(2).
     05 WS-CLIENT PIC 9(5).
     05 WS-COUNTRY PIC A(4).
     05 WS-VALUE PIC S9(6)V9(2). 
我正在将64位定点数转换为浮点数.应该如何在Matlab中完成?以下代码给出了不同的结果.typecast和double(x)有什么区别
temp = 2^32*uint64(MSB) + uint64(LSB);
out_0(1, 1) = typecast(temp, 'double');
out_1(1, 1) = double(temp);
一个例子:
temp = 4618350711997530112
data = typecast(temp, 'double')
data =
    5.9194
>> double(temp)
ans =
    4.6184e+18
我有一些针对某些财务应用程序的定点实现.它基本上是一个包含在类中的整数,它基于给定N的十进制数作为小数.该类是偏执的并检查溢出,但是当我在发布模式下运行我的测试时,它们都失败了,最后我创建了这个演示问题的最小例子:
#include <iostream>
#include <sstream>
template <typename T, typename U>
typename std::enable_if<std::is_convertible<U, std::string>::value, T>::type 
FromString(U&& str)
{
    std::stringstream ss;
    ss << str;
    T ret;
    ss >> ret;
    return ret;
}
int main()
{
    int NewAccu=32;
    int N=10;
    using T = int64_t;
    T l = 10;
    T r = FromString<T>("1" + std::string(NewAccu - N, '0'));
    if (l == 0 || r == 0) {
        return 0;
    }
    T res = l * r;
    std::cout << l << std::endl;
    std::cout …fixed-point ×10
android ×2
optimization ×2
performance ×2
c ×1
c++ ×1
c++11 ×1
cobol ×1
core-audio ×1
gnucobol ×1
imageview ×1
ios ×1
javascript ×1
matlab ×1
opengl-es ×1
precision ×1
rotation ×1