void 
LOCA::Pitchfork::MooreSpence::ExtendedVector::setVec(
					const NOX::Abstract::Vector& xVec,
					const NOX::Abstract::Vector& nullVec,
					double slack,
					double bifPar)
{
  setVector(0, xVec);
  setVector(1, nullVec);
  setScalar(0, slack);
  setScalar(1, bifPar);
}
LOCA::Pitchfork::MooreSpence::ExtendedVector::ExtendedVector(
		    const Teuchos::RCP<LOCA::GlobalData>& global_data,
		    const NOX::Abstract::Vector& xVec,
		    const NOX::Abstract::Vector& nullVec,
		    double slack,
		    double bifParam) :
  LOCA::Extended::Vector(global_data,2,2)
{
  setVector(0, xVec);
  setVector(1, nullVec);
  setScalar(0, slack);
  setScalar(1, bifParam);
}
void
LOCA::Hopf::MooreSpence::ExtendedVector::setVec(
                   const NOX::Abstract::Vector& xVec,
                   const NOX::Abstract::Vector& realEigenVec,
                   const NOX::Abstract::Vector& imagEigenVec,
                   double frequency,
                   double bifPar)
{
  setVector(0, xVec);
  setVector(1, realEigenVec);
  setVector(2, imagEigenVec);
  setScalar(0, frequency);
  setScalar(1, bifPar);
}
LOCA::Hopf::MooreSpence::ExtendedVector::ExtendedVector(
            const Teuchos::RCP<LOCA::GlobalData>& global_data,
            const NOX::Abstract::Vector& xVec,
            const NOX::Abstract::Vector& realEigenVec,
            const NOX::Abstract::Vector& imagEigenVec,
            double frequency,
            double bifParam) :
  LOCA::Extended::Vector(global_data,3,2)
{
  setVector(0, xVec);
  setVector(1, realEigenVec);
  setVector(2, imagEigenVec);
  setScalar(0, frequency);
  setScalar(1, bifParam);
}
Beispiel #5
0
bool SkAnimator::setScalar(const char* id, const char* fieldID, SkScalar scalar) {
    SkDisplayable* element = (SkDisplayable*) getElement(id);
    if (element == NULL)
        return false;
    const SkMemberInfo* field = getField(element, fieldID);
    if (field == NULL)
        return false;
    return setScalar(element, field, scalar);
}
void 
LOCA::TurningPoint::MooreSpence::ExtendedVector::setVec(
					const NOX::Abstract::Vector& xVec,
					const NOX::Abstract::Vector& nullVec,
					double bifPar)
{
  setVector(0, xVec);
  setVector(1, nullVec);
  setScalar(0, bifPar);
}
void
LOCA::PhaseTransition::ExtendedVector::setVec(
                    const NOX::Abstract::Vector& x1Vec,
                    const NOX::Abstract::Vector& x2vec,
                    double ptp)
{
  setVector(0, x1Vec);
  setVector(1, x2vec);
  setScalar(0, ptp);
}
/* 
 * This function checks if the given field is a scalar. If the field dosn't
 * exist it will set the default value.
 */
static int checkScalar(mxArray *pStruct, const char *fieldname, double defaultValue) {
  mxArray *pField;
  
  pField = mxGetField(pStruct, 0,fieldname);
  if(NULL == pField) {
    setScalar(pStruct,fieldname, defaultValue);
    return 1;
  } else {
    return 1 == mxIsDouble(pField)&& 1 == mxGetM(pField) && 1 == mxGetN(pField);
  }
}
LOCA::PhaseTransition::ExtendedVector::ExtendedVector(
            const Teuchos::RCP<LOCA::GlobalData>& global_data,
            const NOX::Abstract::Vector& x1Vec,
            const NOX::Abstract::Vector& x2vec,
            double ptp) :
  LOCA::Extended::Vector(global_data,2,1)
{
  setVector(0, x1Vec);
  setVector(1, x2vec);
  setScalar(0, ptp);
}
LOCA::TurningPoint::MooreSpence::ExtendedVector::ExtendedVector(
		    const Teuchos::RCP<LOCA::GlobalData>& global_data,
		    const NOX::Abstract::Vector& xVec,
		    const NOX::Abstract::Vector& nullVec,
		    double bifParam) :
  LOCA::Extended::Vector(global_data,2,1)
{
  setVector(0, xVec);
  setVector(1, nullVec);
  setScalar(0, bifParam);
}
Beispiel #11
0
void VMMemory::setArrayElement(unsigned dstocEntry, unsigned arrayIndex, int32_t newValue)
{
	if (dstocEntry >= programData->getDSTOCCount()) throw std::range_error("Not a DSTOC entry");
	
	// Get element type (which is the DSTOC field right after the one for the
	// array)
	RXEFile::dstocType elementType = programData->getTypeAtDSTOCIndex(dstocEntry + 1);
	
	// Get dope vector
	int32_t dopeVector = getScalarValue(dstocEntry);
	if (arrayIndex >= SwapU16LittleToHost(dopeVectors[dopeVector].elementCount)) throw std::range_error("Array element not in range");
	
	// Get size of an element.
	unsigned size = SwapU16LittleToHost(dopeVectors[dopeVector].elementSize);
	
	// Set element
	setScalar(elementType, &(arrays[dopeVector][size*arrayIndex]), newValue);
}
Beispiel #12
0
void UnoAlarm::setFrequency(double frequencyHz) {
	int f = 1;
	// if we need a frequency >= system frequency, use scalar of 1
	do {
		double interuptFrequency = (systemFrequency / scalars[f].scalar);
		if (frequencyHz < interuptFrequency) {
			// so, now that we have more ticks than required, use counts to scale back further
			break;
		}
	} while (scalars[f].scalar != 1);
	double interuptFrequency = (systemFrequency / scalars[f].scalar);
	unsigned int ticks = interuptFrequency / frequencyHz;
	if (ticks > scalars[0].scalar) {
		ticks = scalars[0].scalar;
	}
	setScalar(scalars[0].mask, scalars[f].mask);
	setTicks(ticks);
}
Beispiel #13
0
void VertexScalar::loadScalars()
{
	if (!mi) return;

	SurfaceMesh *mesh = mi->getMesh();
	if (!mesh) return;

	unsigned int i = 0;
	for (SurfaceMesh::VertexIter v_it = mesh->vertices_begin(); v_it!=mesh->vertices_end(); ++v_it) {
		if (i >= ps->size()) {
			ps->addParticle();
		}
		SurfaceMesh::TexCoord2D tc = mesh->texcoord2D(v_it);
		
		setScalar(i,tc[0]);

		i++;
	}
	for (unsigned int j = ps->size() - 1; j >= i; j--)
		ps->removeParticle(j);
}
Beispiel #14
0
void ImageAccess::setVector(VectorXi position, Vector4f value) {
    for(uchar i = 0; i < mImage->getNrOfComponents(); ++i) {
        setScalar(position, value[i], i);
    }
}
Beispiel #15
0
void VMMemory::setScalarValue(unsigned entry, int32_t newValue) throw(std::range_error, std::invalid_argument)
{
	if (entry >= programData->getDSTOCCount()) throw std::range_error("Not a DSTOC entry");
	RXEFile::dstocType type = programData->getTypeAtDSTOCIndex(entry);	
	setScalar(type, memory + programData->getDataDescriptorAtDSTOCIndex(entry), newValue);
}
Beispiel #16
0
void ImageAccess::setScalar(Vector2i position, float value, uchar channel) {
    Vector3i position3D(position.x(), position.y(), 0);
    setScalar(position3D, value, channel);
}
Beispiel #17
0
static __GLXconfig *
createModeFromConfig(const __DRIcoreExtension * core,
                     const __DRIconfig * driConfig,
                     unsigned int visualType, unsigned int drawableType)
{
    __GLXDRIconfig *config;
    GLint renderType = 0;
    unsigned int attrib, value;
    int i;

    config = calloc(1, sizeof *config);

    config->driConfig = driConfig;

    i = 0;
    while (core->indexConfigAttrib(driConfig, i++, &attrib, &value)) {
        switch (attrib) {
        case __DRI_ATTRIB_RENDER_TYPE:
            if (value & __DRI_ATTRIB_RGBA_BIT)
                renderType |= GLX_RGBA_BIT;
            if (value & __DRI_ATTRIB_COLOR_INDEX_BIT)
                renderType |= GLX_COLOR_INDEX_BIT;
#ifdef __DRI_ATTRIB_FLOAT_BIT
            if (value & __DRI_ATTRIB_FLOAT_BIT)
                renderType |= GLX_RGBA_FLOAT_BIT_ARB;
#endif
#ifdef __DRI_ATTRIB_UNSIGNED_FLOAT_BIT
            if (value & __DRI_ATTRIB_UNSIGNED_FLOAT_BIT)
                renderType |= GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT;
#endif
            break;
        case __DRI_ATTRIB_CONFIG_CAVEAT:
            if (value & __DRI_ATTRIB_NON_CONFORMANT_CONFIG)
                config->config.visualRating = GLX_NON_CONFORMANT_CONFIG;
            else if (value & __DRI_ATTRIB_SLOW_BIT)
                config->config.visualRating = GLX_SLOW_CONFIG;
            else
                config->config.visualRating = GLX_NONE;
            break;
        case __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS:
            config->config.bindToTextureTargets = 0;
            if (value & __DRI_ATTRIB_TEXTURE_1D_BIT)
                config->config.bindToTextureTargets |= GLX_TEXTURE_1D_BIT_EXT;
            if (value & __DRI_ATTRIB_TEXTURE_2D_BIT)
                config->config.bindToTextureTargets |= GLX_TEXTURE_2D_BIT_EXT;
            if (value & __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT)
                config->config.bindToTextureTargets |=
                    GLX_TEXTURE_RECTANGLE_BIT_EXT;
            break;
        default:
            setScalar(&config->config, attrib, value);
            break;
        }
    }

    config->config.next = NULL;
    config->config.xRenderable = GL_TRUE;
    config->config.visualType = visualType;
    config->config.renderType = renderType;
    config->config.drawableType = drawableType;
    config->config.yInverted = GL_TRUE;

    return &config->config;
}
static void 
abv_init(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[], bool isStructInit)
{
  int result;
  char *bv_hostname = 0;
  struct RDA_MessageStart *pMsgStart;
  
  mxArray* OUT_STATE;
  
  /* copy the params to the out state */
  if(isStructInit) {
    // init with struct
    OUT_STATE = mxDuplicateArray(prhs[1]);
  } else {
    // init with property list
    int dims[2] = {1,1};
    OUT_STATE = mxCreateStructArray(2, dims, 0, NULL);
    // arguments have beed checked in mexFunction
    for(int i = 1; i < nrhs; i = i + 2) {
      addField(OUT_STATE, prhs[i], prhs[i + 1]);
    }
  }
  
  /* check for the needed fields values 
   * if they don't exist we will set the default values */
  checkString(OUT_STATE,FIELD_HOST, "127.0.0.1");
  
  /* Get server name (or use default "brainamp") */
  bv_hostname = getString(OUT_STATE, FIELD_HOST);

  /* open connection */
  result = initConnection(bv_hostname,&pMsgStart);
  free(bv_hostname);  
    
  if (result == IC_OKAY) {
    /* construct connection state structure */
    int nChans, lag, n;
    double orig_fs;
    mxArray *pArray;
    char *pChannelName;
    double *chan_sel;
    double *filter_buffer_sub;
    double *filter_buffer_a;
    double *filter_buffer_b;
    int iirFilterSize;
    
    nChans = pMsgStart->nChannels;
    orig_fs = 1000000.0 / ((double) pMsgStart->dSamplingInterval);
    
    /* Check fs */
    checkScalar(OUT_STATE,FIELD_FS,orig_fs);
    
    lag = (int) (orig_fs / getScalar(OUT_STATE, FIELD_FS));
    
    abv_assert(lag * (int)getScalar(OUT_STATE,FIELD_FS) == (int)orig_fs,"bbci_acquire_bv: The base frequency has to be a multiple of the requested frequency.");
    
    /* Overwrite the following fields */
    setScalar(OUT_STATE,FIELD_ORIG_FS, orig_fs);
    setScalar(OUT_STATE,FIELD_LAG, lag);
    setScalar(OUT_STATE,FIELD_BLOCK_NO, -1.0);
     /* this odd hack is because pMsgStart contains several variably
       sized arrays, and this is the way to get the channel names 
     */
    setStringCell(OUT_STATE, FIELD_CLAB,(char *) ((double*) pMsgStart->dResolutions + nChans), 1, nChans);
    
    
    /* Check the following fields */
    checkString(OUT_STATE,FIELD_MARKER_FORMAT, "numeric");
    abv_assert(1 == checkScalar(OUT_STATE, FIELD_RECONNECT, 1), "bbci_acquire_bv: Reconnect is no scalar.");
    abv_assert(1 == checkArray(OUT_STATE, FIELD_SCALE, 1, nChans, pMsgStart->dResolutions), "bbci_acquire_bv: Scale is no array or has wrong size.");
    
    chan_sel = (double *) malloc(nChans*sizeof(double));
    for (n = 0;n<nChans;n++) {
        chan_sel[n] = n+1;
    }
    abv_assert(1 == checkArray(OUT_STATE, FIELD_CHAN_SEL, 1, -nChans, chan_sel), "bbci_acquire_bv: chan_sel is no array.");  
    free(chan_sel);
    
    /* Create the default filters */
    
    filter_buffer_sub = (double *) malloc(lag*sizeof(double));
    for(n = 0; n < lag; ++n) {
      filter_buffer_sub[n] = 1.0 / (double)lag;
    }
    filter_buffer_a = (double *) malloc(sizeof(double));
    filter_buffer_a[0] = 1.0;
    filter_buffer_b = (double *) malloc(sizeof(double));
    filter_buffer_b[0] = 1.0;
    
    /* check the filters */
    abv_assert(1 == checkArray(OUT_STATE, FIELD_FILT_SUBSAMPLE, 1, lag, filter_buffer_sub), "bbci_acquire_bv: Subsample filter is no array or has the wrong size.");
    abv_assert(1 == checkArray(OUT_STATE, FIELD_FILT_A, 1, -1, filter_buffer_a), "bbci_acquire_bv: IIR filter aSubsample filter has the wrong size.");
    abv_assert(1 == checkArray(OUT_STATE, FIELD_FILT_B, 1, -1, filter_buffer_b), "bbci_acquire_bv: Subsample filter has the wrong size.");
    
    /* free the default filters */
    free(filter_buffer_sub);
    free(filter_buffer_a);
    free(filter_buffer_b);
    
    /* check if the iir filters have the same size */
    iirFilterSize = getArrayN(OUT_STATE, FIELD_FILT_A);
    
    abv_assert(getArrayN(OUT_STATE, FIELD_FILT_B) == iirFilterSize, "bbci_acquire_bv: bFilter and aFilter must have the same size.");
    
    
    /* get the arrays for the filters and create the filters */
    filter_buffer_sub = getArray(OUT_STATE, FIELD_FILT_SUBSAMPLE);
    filter_buffer_a = getArray(OUT_STATE, FIELD_FILT_A);
    filter_buffer_b = getArray(OUT_STATE, FIELD_FILT_B);
    
    filterFIRCreate(filter_buffer_sub, lag,nChans);
    filterIIRCreate(filter_buffer_a, filter_buffer_b, iirFilterSize, nChans);
    
    connected = 1;
  }
  
  plhs[0] = OUT_STATE;
  free(pMsgStart);
}