当前位置: 首页>>代码示例>>C++>>正文


C++ cmp函数代码示例

本文整理汇总了C++中cmp函数的典型用法代码示例。如果您正苦于以下问题:C++ cmp函数的具体用法?C++ cmp怎么用?C++ cmp使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了cmp函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: cmp

int JComplexData::compareTo(const JObject& s) const {
  if (className() != s.className())
    return JObject::compareTo(s);
  return cmp(value.norm(), ((JComplexData*)&s)->value.norm());
}
开发者ID:neattools,项目名称:neattools,代码行数:5,代码来源:JComplexData.cpp

示例2: cmp

/* Сравнение 2-х строк
 * s > p  |  1
 * s = p  |  0
 * s < p  |  -1   */
int cmp(char *s, char *p)
{
	return *s ? *p ? *s == *p ? cmp(++s, ++p) : *s > *p ? 1 : -1 : 1 : *p ? -1 : 0; // 53
}
开发者ID:Learko,项目名称:coursework,代码行数:8,代码来源:string.cpp

示例3: CollateJSON

int CollateJSON(const sized_buf *buf1,
                const sized_buf *buf2,
                CollateJSONMode mode)
{
    const char* str1 = buf1->buf;
    const char* str2 = buf2->buf;
    int depth = 0;

    do {
        /* Get the types of the next token in each string: */
        ValueType type1 = valueTypeOf(*str1);
        ValueType type2 = valueTypeOf(*str2);
        /* If types don't match, stop and return their relative ordering: */
        if (type1 != type2) {
            if (mode != kCollateJSON_Raw)
                return cmp(type1, type2);
            else
                return cmp(kRawOrderOfValueType[type1], kRawOrderOfValueType[type2]);

        /* If types match, compare the actual token values: */
        } else switch (type1) {
            case kNull:
            case kTrue:
                str1 += 4;
                str2 += 4;
                break;
            case kFalse:
                str1 += 5;
                str2 += 5;
                break;
            case kNumber: {
                char* next1, *next2;
                int diff;
                if (depth == 0) {
                    /* At depth 0, be careful not to fall off the end of the
                       input, because there won't be any delimiters (']' or
                       '}') after the number! */
                    diff = dcmp( readNumber(str1, buf1->buf + buf1->size, &next1),
                                 readNumber(str2, buf2->buf + buf2->size, &next2) );
                } else {
                    diff = dcmp( strtod(str1, &next1), strtod(str2, &next2) );
                }
                if (diff)
                    return diff; /* Numbers don't match */
                str1 = next1;
                str2 = next2;
                break;
            }
            case kString: {
                int diff;
                if (mode == kCollateJSON_Unicode)
                    diff = compareStringsUnicode(&str1, &str2);
                else
                    diff = compareStringsASCII(&str1, &str2);
                if (diff)
                    return diff; /* Strings don't match */
                break;
            }
            case kArray:
            case kObject:
                ++str1;
                ++str2;
                ++depth;
                break;
            case kEndArray:
            case kEndObject:
                ++str1;
                ++str2;
                --depth;
                break;
            case kComma:
            case kColon:
                ++str1;
                ++str2;
                break;
            case kIllegal:
                return 0;
        }
    /* Keep going as long as we're inside an array or object */
    } while (depth > 0);
    return 0;
}
开发者ID:hsharsha,项目名称:couchstore,代码行数:82,代码来源:collate_json.c

示例4: compile


//.........这里部分代码省略.........
				sh_to_reg(op.rs1, mov, call_regs[0]);
				sh_to_reg(op.rs3, add, call_regs[0]);

				if (size != 8)
					sh_to_reg(op.rs2, mov, call_regs[1]);
				else
					sh_to_reg(op.rs2, mov, call_regs64[1]);

				if (size == 1)
					call((void*)WriteMem8);
				else if (size == 2)
					call((void*)WriteMem16);
				else if (size == 4)
					call((void*)WriteMem32);
				else if (size == 8)
					call((void*)WriteMem64);
				else {
					die("1..8 bytes");
				}
			}
			break;

			default:
				shil_chf[op.op](&op);
				break;
			}
		}

		mov(rax, (size_t)&next_pc);

		switch (block->BlockType) {

		case BET_StaticJump:
		case BET_StaticCall:
			//next_pc = block->BranchBlock;
			mov(dword[rax], block->BranchBlock);
			break;

		case BET_Cond_0:
		case BET_Cond_1:
			{
				//next_pc = next_pc_value;
				//if (*jdyn == 0)
				//next_pc = branch_pc_value;

				mov(dword[rax], block->NextBlock);

				if (block->has_jcond)
					mov(rdx, (size_t)&Sh4cntx.jdyn);
				else
					mov(rdx, (size_t)&sr.T);

				cmp(dword[rdx], block->BlockType & 1);
				Xbyak::Label branch_not_taken;

				jne(branch_not_taken, T_SHORT);
				mov(dword[rax], block->BranchBlock);
				L(branch_not_taken);
			}
			break;

		case BET_DynamicJump:
		case BET_DynamicCall:
		case BET_DynamicRet:
			//next_pc = *jdyn;
			mov(rdx, (size_t)&Sh4cntx.jdyn);
			mov(edx, dword[rdx]);
			mov(dword[rax], edx);
			break;

		case BET_DynamicIntr:
		case BET_StaticIntr:
			if (block->BlockType == BET_DynamicIntr) {
				//next_pc = *jdyn;
				mov(rdx, (size_t)&Sh4cntx.jdyn);
				mov(edx, dword[rdx]);
				mov(dword[rax], edx);
			}
			else {
				//next_pc = next_pc_value;
				mov(dword[rax], block->NextBlock);
			}

			call((void*)UpdateINTC);
			break;

		default:
			die("Invalid block end type");
		}


		add(rsp, 0x28);
		ret();

		ready();

		block->code = (DynarecCodeEntryPtr)getCode();

		emit_Skip(getSize());
	}
开发者ID:rasterico,项目名称:reicast-emulator,代码行数:101,代码来源:rec_x64.cpp

示例5: c_read

 void c_read(uint32_t v, unsigned char *buf, size_t len, off_t off)
 {
     memset(buf, 0xFF, len);
     read(buf, len, off);
     cmp(v, buf, len);
 }
开发者ID:IAIK,项目名称:secure-block-device,代码行数:6,代码来源:SbdiTest.cpp

示例6: slurp

static void
slurp(INPUT *F)
{
	LINE *lp, *lastlp, tmp;
	size_t len;
	int cnt;
	char *bp, *fieldp;

	/*
	 * Read all of the lines from an input file that have the same
	 * join field.
	 */
	F->setcnt = 0;
	for (lastlp = NULL;; ++F->setcnt) {
		/*
		 * If we're out of space to hold line structures, allocate
		 * more.  Initialize the structure so that we know that this
		 * is new space.
		 */
		if (F->setcnt == F->setalloc) {
			cnt = F->setalloc;
			F->setalloc += 50;
			if ((F->set = realloc(F->set,
			    F->setalloc * sizeof(LINE))) == NULL)
				err(1, NULL);
			memset(F->set + cnt, 0, 50 * sizeof(LINE));

			/* re-set lastlp in case it moved */
			if (lastlp != NULL)
				lastlp = &F->set[F->setcnt - 1];
		}

		/*
		 * Get any pushed back line, else get the next line.  Allocate
		 * space as necessary.  If taking the line from the stack swap
		 * the two structures so that we don't lose space allocated to
		 * either structure.  This could be avoided by doing another
		 * level of indirection, but it's probably okay as is.
		 */
		lp = &F->set[F->setcnt];
		if (F->setcnt)
			lastlp = &F->set[F->setcnt - 1];
		if (F->pushbool) {
			tmp = F->set[F->setcnt];
			F->set[F->setcnt] = F->set[F->pushback];
			F->set[F->pushback] = tmp;
			F->pushbool = 0;
			continue;
		}
		if ((bp = fgetln(F->fp, &len)) == NULL)
			return;
		if (lp->linealloc <= len + 1) {
			lp->linealloc += MAX(100, len + 1 - lp->linealloc);
			if ((lp->line =
			    realloc(lp->line, lp->linealloc)) == NULL)
				err(1, NULL);
		}
		memmove(lp->line, bp, len);

		/* Replace trailing newline, if it exists. */
		if (bp[len - 1] == '\n')
			lp->line[len - 1] = '\0';
		else
			lp->line[len] = '\0';
		bp = lp->line;

		/* Split the line into fields, allocate space as necessary. */
		lp->fieldcnt = 0;
		while ((fieldp = mbssep(&bp, tabchar)) != NULL) {
			if (spans && *fieldp == '\0')
				continue;
			if (lp->fieldcnt == lp->fieldalloc) {
				lp->fieldalloc += 50;
				if ((lp->fields = realloc(lp->fields,
				    lp->fieldalloc * sizeof(char *))) == NULL)
					err(1, NULL);
			}
			lp->fields[lp->fieldcnt++] = fieldp;
		}

		/* See if the join field value has changed. */
		if (lastlp != NULL && cmp(lp, F->joinf, lastlp, F->joinf)) {
			F->pushbool = 1;
			F->pushback = F->setcnt;
			break;
		}
	}
}
开发者ID:JabirTech,项目名称:Source,代码行数:88,代码来源:join.c

示例7: testMassFunctions

void testMassFunctions()
{
  dMass m;
  int i,j;
  dReal q[NUMP][3];		// particle positions
  dReal pm[NUMP];		// particle masses
  dMass m1,m2;
  dMatrix3 R;

  HEADER;

  printf ("\t");
  dMassSetZero (&m);
  TRAP_MESSAGE (dMassSetParameters (&m,10, 0,0,0, 1,2,3, 4,5,6),
		printf (" FAILED (1)\n"), printf (" passed (1)\n"));

  printf ("\t");
  dMassSetZero (&m);
  TRAP_MESSAGE (dMassSetParameters (&m,10, 0.1,0.2,0.15, 3,5,14, 3.1,3.2,4),
		printf ("passed (2)\n") , printf (" FAILED (2)\n"));
  if (m.mass==10 && m.c[0]==REAL(0.1) && m.c[1]==REAL(0.2) &&
      m.c[2]==REAL(0.15) && m._I(0,0)==3 && m._I(1,1)==5 && m._I(2,2)==14 &&
      m._I(0,1)==REAL(3.1) && m._I(0,2)==REAL(3.2) && m._I(1,2)==4 &&
      m._I(1,0)==REAL(3.1) && m._I(2,0)==REAL(3.2) && m._I(2,1)==4)
    printf ("\tpassed (3)\n"); else printf ("\tFAILED (3)\n");

  dMassSetZero (&m);
  dMassSetSphere (&m,1.4, 0.86);
  if (cmp(m.mass,3.73002719949386) && m.c[0]==0 && m.c[1]==0 && m.c[2]==0 &&
      cmp(m._I(0,0),1.10349124669826) &&
      cmp(m._I(1,1),1.10349124669826) &&
      cmp(m._I(2,2),1.10349124669826) &&
      m._I(0,1)==0 && m._I(0,2)==0 && m._I(1,2)==0 &&
      m._I(1,0)==0 && m._I(2,0)==0 && m._I(2,1)==0)
    printf ("\tpassed (4)\n"); else printf ("\tFAILED (4)\n");

  dMassSetZero (&m);
  dMassSetCapsule (&m,1.3,1,0.76,1.53);
  if (cmp(m.mass,5.99961928996029) && m.c[0]==0 && m.c[1]==0 && m.c[2]==0 &&
      cmp(m._I(0,0),1.59461986077384) &&
      cmp(m._I(1,1),4.21878433864904) &&
      cmp(m._I(2,2),4.21878433864904) &&
      m._I(0,1)==0 && m._I(0,2)==0 && m._I(1,2)==0 &&
      m._I(1,0)==0 && m._I(2,0)==0 && m._I(2,1)==0)
    printf ("\tpassed (5)\n"); else printf ("\tFAILED (5)\n");

  dMassSetZero (&m);
  dMassSetBox (&m,0.27,3,4,5);
  if (cmp(m.mass,16.2) && m.c[0]==0 && m.c[1]==0 && m.c[2]==0 &&
      cmp(m._I(0,0),55.35) && cmp(m._I(1,1),45.9) && cmp(m._I(2,2),33.75) &&
      m._I(0,1)==0 && m._I(0,2)==0 && m._I(1,2)==0 &&
      m._I(1,0)==0 && m._I(2,0)==0 && m._I(2,1)==0)
    printf ("\tpassed (6)\n"); else printf ("\tFAILED (6)\n");

  // test dMassAdjust?

  // make random particles and compute the mass, COM and inertia, then
  // translate and repeat.
  for (i=0; i<NUMP; i++) {
    pm[i] = dRandReal()+0.5;
    for (j=0; j<3; j++) {
      q[i][j] = 2.0*(dRandReal()-0.5);
    }
  }
  computeMassParams (&m1,q,pm);
  memcpy (&m2,&m1,sizeof(dMass));
  dMassTranslate (&m2,1,2,-3);
  for (i=0; i<NUMP; i++) {
    q[i][0] += 1;
    q[i][1] += 2;
    q[i][2] -= 3;
  }
  computeMassParams (&m1,q,pm);
  compareMassParams (&m1,&m2,"7");

  // rotate the masses
  _R(0,0) = -0.87919618797635;
  _R(0,1) = 0.15278881840384;
  _R(0,2) = -0.45129772879842;
  _R(1,0) = -0.47307856232664;
  _R(1,1) = -0.39258064912909;
  _R(1,2) = 0.78871864932708;
  _R(2,0) = -0.05666336483842;
  _R(2,1) = 0.90693771059546;
  _R(2,2) = 0.41743652473765;
  dMassRotate (&m2,R);
  for (i=0; i<NUMP; i++) {
    dReal a[3];
    dMultiply0 (a,&_R(0,0),&q[i][0],3,3,1);
    q[i][0] = a[0];
    q[i][1] = a[1];
    q[i][2] = a[2];
  }
  computeMassParams (&m1,q,pm);
  compareMassParams (&m1,&m2,"8");
}
开发者ID:Devilmore,项目名称:GoalBabbling,代码行数:96,代码来源:demo_ode.cpp

示例8: avro_value_cmp_fast

int
avro_value_cmp_fast(avro_value_t *val1, avro_value_t *val2)
{
	avro_type_t  type1 = avro_value_get_type(val1);
	avro_type_t  type2 = avro_value_get_type(val2);
	if (type1 != type2) {
		return -1;
	}

	switch (type1) {
		case AVRO_BOOLEAN:
		{
			int  v1;
			int  v2;
			check_return(0, avro_value_get_boolean(val1, &v1));
			check_return(0, avro_value_get_boolean(val2, &v2));
			return cmp(!!v1, !!v2);
		}

		case AVRO_BYTES:
		{
			const void  *buf1;
			const void  *buf2;
			size_t  size1;
			size_t  size2;
			size_t  min_size;
			int  result;

			check_return(0, avro_value_get_bytes(val1, &buf1, &size1));
			check_return(0, avro_value_get_bytes(val2, &buf2, &size2));

			min_size = (size1 < size2)? size1: size2;
			result = memcmp(buf1, buf2, min_size);
			if (result != 0) {
				return result;
			} else {
				return cmp(size1, size2);
			}
		}

		case AVRO_DOUBLE:
		{
			double  v1;
			double  v2;
			check_return(0, avro_value_get_double(val1, &v1));
			check_return(0, avro_value_get_double(val2, &v2));
			return cmp(v1, v2);
		}

		case AVRO_FLOAT:
		{
			float  v1;
			float  v2;
			check_return(0, avro_value_get_float(val1, &v1));
			check_return(0, avro_value_get_float(val2, &v2));
			return cmp(v1, v2);
		}

		case AVRO_INT32:
		{
			int32_t  v1;
			int32_t  v2;
			check_return(0, avro_value_get_int(val1, &v1));
			check_return(0, avro_value_get_int(val2, &v2));
			return cmp(v1, v2);
		}

		case AVRO_INT64:
		{
			int64_t  v1;
			int64_t  v2;
			check_return(0, avro_value_get_long(val1, &v1));
			check_return(0, avro_value_get_long(val2, &v2));
			return cmp(v1, v2);
		}

		case AVRO_NULL:
		{
			check_return(0, avro_value_get_null(val1));
			check_return(0, avro_value_get_null(val2));
			return 0;
		}

		case AVRO_STRING:
		{
			const char  *buf1;
			const char  *buf2;
			size_t  size1;
			size_t  size2;
			size_t  min_size;
			int  result;
			check_return(0, avro_value_get_string(val1, &buf1, &size1));
			check_return(0, avro_value_get_string(val2, &buf2, &size2));

			min_size = (size1 < size2)? size1: size2;
			result = memcmp(buf1, buf2, min_size);
			if (result != 0) {
				return result;
			} else {
				return cmp(size1, size2);
//.........这里部分代码省略.........
开发者ID:1ack,项目名称:Impala,代码行数:101,代码来源:value.c

示例9: eq

 virtual bool eq(const Object *rhs)const override { return cmp(rhs) == 0; }
开发者ID:wnewbery,项目名称:cpp-slim,代码行数:1,代码来源:Array.hpp

示例10: main

int main(void)
{

	number_passed = 0;
	number_failed = 0;

	int data_read;

	printf("\n\n");
	delay(1000);

	data_read = read(SIM_HOST_BASE_ADDR + HOST_SLAVE_CONTROL_BASE + HOST_SLAVE_VERSION_REG); // 225
	printf("Host Version number = 0x%0X\n", data_read);
	data_read = read(SIM_SLAVE_BASE_ADDR + HOST_SLAVE_CONTROL_BASE + HOST_SLAVE_VERSION_REG); // 481
	printf("Slave Version number = 0x%0X\n", data_read);

	printf("Testing host register read/write \n");
	write(SIM_HOST_BASE_ADDR + HCREG_BASE + TX_LINE_CONTROL_REG, 0x18); // 2
	cmp(SIM_HOST_BASE_ADDR + HCREG_BASE + TX_LINE_CONTROL_REG, 0x18); // 2
	printf("Testing slave register read/write \n");
	write(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_CONTROL_REG, 0x70); // 336
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_CONTROL_REG , 0x70); // 336

	printf("Testing register reset \n");
	write(SIM_HOST_BASE_ADDR + HOST_SLAVE_CONTROL_BASE + HOST_SLAVE_CONTROL_REG, 0x2); // 224
	write(SIM_SLAVE_BASE_ADDR + HOST_SLAVE_CONTROL_BASE + HOST_SLAVE_CONTROL_REG, 0x2); // 480
	delay(1000);
	cmp(SIM_HOST_BASE_ADDR + HCREG_BASE + TX_LINE_CONTROL_REG, 0x00); // 2
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_CONTROL_REG, 0x00); // 336
	delay(1000);

	printf("Configure host and slave mode.\n");
	write(SIM_HOST_BASE_ADDR + HOST_SLAVE_CONTROL_BASE + HOST_SLAVE_CONTROL_REG, 0x1);
	write(SIM_SLAVE_BASE_ADDR + HOST_SLAVE_CONTROL_BASE + HOST_SLAVE_CONTROL_REG, 0x0);

	printf("Connect full speed\n");
	write(SIM_HOST_BASE_ADDR + HCREG_BASE + TX_LINE_CONTROL_REG, 0x18);
	write(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_CONTROL_REG, 0x70);
	delay(20000);
	//expecting connection event interrupt
	cmp(SIM_HOST_BASE_ADDR + HCREG_BASE + INTERRUPT_STATUS_REG, 0x04);
	//expecting full speed connect
	cmp(SIM_HOST_BASE_ADDR + HCREG_BASE + RX_CONNECT_STATE_REG, 0x02);
	//expecting change in reset state event, and change in vbus state event
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_INTERRUPT_STATUS_REG, 0x24);
	//expecting full speed connect and vbus present
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_LINE_STATUS_REG, 0x06);

	printf("Cancel interrupts\n");
	write(SIM_HOST_BASE_ADDR + HCREG_BASE + INTERRUPT_STATUS_REG, 0x04);
	write(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_INTERRUPT_STATUS_REG, 0x24);
	//expecting all interrupts cancelled
	cmp(SIM_HOST_BASE_ADDR + HCREG_BASE + INTERRUPT_STATUS_REG, 0x00);
	//expecting all interrupts cancelled
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_INTERRUPT_STATUS_REG, 0x00);
	delay(1000);

	printf("Disconnect\n");
	write(SIM_HOST_BASE_ADDR + HCREG_BASE + TX_LINE_CONTROL_REG, 0x18);
	write(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_CONTROL_REG , 0x30);
	delay(10000);
	//expecting connection event interrupt
	cmp(SIM_HOST_BASE_ADDR + HCREG_BASE + INTERRUPT_STATUS_REG, 0x04);
	//expecting disconnect state
	cmp(SIM_HOST_BASE_ADDR + HCREG_BASE + RX_CONNECT_STATE_REG, 0x00);
	//expecting change in reset state event
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_INTERRUPT_STATUS_REG, 0x04);
	//expecting vbus present, and disconnect state
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_LINE_STATUS_REG, 0x04);
	//cancel interrupts
	write(SIM_HOST_BASE_ADDR + HCREG_BASE + INTERRUPT_STATUS_REG, 0x04);
	write(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_INTERRUPT_STATUS_REG, 0x04);

	printf("Connect full speed\n");
	write(SIM_HOST_BASE_ADDR + HCREG_BASE + TX_LINE_CONTROL_REG, 0x18);
	write(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_CONTROL_REG, 0x70);
	delay(20000);
	//expecting connection event interrupt
	cmp(SIM_HOST_BASE_ADDR + HCREG_BASE + INTERRUPT_STATUS_REG, 0x04);
	//expecting full speed connect
	cmp(SIM_HOST_BASE_ADDR + HCREG_BASE + RX_CONNECT_STATE_REG, 0x02);
	//expecting change in reset state event
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_INTERRUPT_STATUS_REG, 0x04);
	//expecting full speed connect and vbus present
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_LINE_STATUS_REG, 0x06);
	//cancel interrupts
	write(SIM_HOST_BASE_ADDR + HCREG_BASE + INTERRUPT_STATUS_REG, 0x04);
	write(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_INTERRUPT_STATUS_REG, 0x04);
	cmp(SIM_HOST_BASE_ADDR + HCREG_BASE + INTERRUPT_STATUS_REG, 0x00);
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_INTERRUPT_STATUS_REG, 0x00);
	delay(1000);

	printf("Host forcing reset\n");
	write(SIM_HOST_BASE_ADDR + HCREG_BASE+TX_LINE_CONTROL_REG, 0x1c);
	delay(20000);
	//expecting change in reset state event
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_INTERRUPT_STATUS_REG, 0x04);
	//expecting vbus present, and disconnect state
	cmp(SIM_SLAVE_BASE_ADDR + SCREG_BASE + SC_LINE_STATUS_REG, 0x04);
	//cancel interrupt
//.........这里部分代码省略.........
开发者ID:deafbeed,项目名称:sid-cosim-model-generator,代码行数:101,代码来源:usb_program.c

示例11: data

void GetReady::readTFGene(GeneIM temp_gene_IM[],double **old_GRN,string TF_Gene_address)
{
    ifstream data(TF_Gene_address.c_str());
	char ch;
	int i,num=0;
	char *Name;
	char STRING1[GENEAM][10];
	data.get(ch);
	for(i=gene_amount;i<GENEAM;)
	{
		int a,b;
		while(ch=='#')
		{
			string noUse;
			getline(data,noUse);
			data.get(ch);
		}
		while(ch!='	')
		{
			STRING1[i][num]=ch;
			data.get(ch);
			num++;
		}
		STRING1[i][num]='\0';
		Name=STRING1[i];
		int j;
		for(j=0;j<i;j++)
		{
            lwr(Name);
            if(cmp(temp_gene_IM[j].gene_name,Name)==0)
			{
				a=j;
				j=i+1;
			}
		}
		if(j==i)
		{
			temp_gene_IM[i].name=Name;
			temp_gene_IM[i].putName();
			temp_gene_IM[i].gene_number=i;
			a=i;
			i++;
		}
		data.get(ch);
		num=0;
		while(ch!='	')
		{
			STRING1[i][num]=ch;
			data.get(ch);
			num++;
		}
		STRING1[i][num]='\0';
		Name=STRING1[i];
		for(j=0;j<i;j++)
		{
            lwr(Name);
            if(cmp(temp_gene_IM[j].gene_name,Name)==0)
			{
				b=j;
				j=i+1;
			}
		}
		if(j==i)
		{
			temp_gene_IM[i].name=Name;
			temp_gene_IM[i].putName();
			temp_gene_IM[i].gene_number=i;
			b=i;
			i++;
		}
		data.get(ch);
		if(ch=='-')
		{
			if(old_GRN[b][a]==1||old_GRN[b][a]==2)
			{
                if(old_GRN[b][a]!=2)
                    uncertain<<"?\t"<<temp_gene_IM[b].getGeneName()<<"->"<<temp_gene_IM[a].getGeneName()<<endl;
                old_GRN[b][a]=2;
				uncertain_row.push_back(b);
				uncertain_column.push_back(a);
				unknow++;
			}
			else
				old_GRN[b][a]=-1;
		}
		else if(ch=='+')
		{
			data.get(ch);
			if(ch=='-')
			{
				old_GRN[b][a]=2;
				uncertain_row.push_back(b);
				uncertain_column.push_back(a);
				uncertain<<"?\t"<<temp_gene_IM[b].getGeneName()<<"->"<<temp_gene_IM[a].getGeneName()<<endl;
				unknow++;
			}
			else
				old_GRN[b][a]=1;
		}
		else
//.........这里部分代码省略.........
开发者ID:huachuan214,项目名称:USTC-Software2013,代码行数:101,代码来源:GetReady.cpp

示例12: receive_matx32d

void receive_matx32d(cv::Matx32d matx)
{
    double t[6] = {0.445, 0.473, 0.765, 0.523, 0.832, 0.345};
    cmp(matx, t);
}
开发者ID:renatoGarcia,项目名称:opencv-swig,代码行数:5,代码来源:matx.hpp

示例13: return

bool Resultado::operator<(const Resultado& r) const {
	return (cmp(this->J, r.J) < 0);
}
开发者ID:fmm,项目名称:fuzzy-clustering,代码行数:3,代码来源:Resultado.cpp

示例14: calculaJ

double Resultado::atualizaJ(const Repositorio& repositorio) {
	double novoJ = calculaJ(repositorio);
	assert(cmp(novoJ,this->J) <= 0);
	return (this->J = novoJ);
}
开发者ID:fmm,项目名称:fuzzy-clustering,代码行数:5,代码来源:Resultado.cpp

示例15: divid

//除法计算
void divid(const char a[],const char b[],char result[])
{
    bool isNegative = false;
    char *op1,*pa,*pb,*pr;
    int up,alen,blen,adotp,bdotp,i,k,dotp,t,t1,j,quo_size;
    /////////////判定符号///////////////
    //如果为异号
    if((a[0] == '-'||b[0] == '-')&&a[0] != b[0])
        result[0] = '-',isNegative = true;
    
    //去除负号
    if(a[0] == '-')a++;
    if(b[0] == '-')b++;
    ///////////////////////////////////
    
    alen = strlen(a)-1; //减去一位小数点
    blen = strlen(b)-1;
    
    ///////获取被除数小数点移位后的位置//////////
    adotp = strchr(a,'.')-a;
    bdotp = strchr(b,'.')-b;
    
    //计算商小数点位置
    dotp = adotp+blen-bdotp;
    if(isNegative)dotp++;
    
    //////////准备数据/////////////
    op1 = (char *)calloc(alen+blen+1,sizeof(char));
    pa = (char *)calloc(alen+blen+1,sizeof(char));
    pb = (char *)calloc(blen+1,sizeof(char));
    pr = (char *)calloc(alen+blen+1,sizeof(char));
    
    for(i = 0,t=0; i<=alen; i++)
    {
        if(a[i]!='.')
            pa[t++] = a[i];
    }
    for(;t<dotp-1;t++)
    {
        pa[t] = '0';
    }
    for(;t<blen;t++)
    {
        pa[t] = '0';
    }
    
    pa[t] = '\0';
    for(i = 0,t=0; i<=blen; i++)
    {
        if(b[i]!='.')
            pb[t++] = b[i];
    }
    pb[t] = '\0';
    clz(pa);
    clz(pb);
    ////////取得被除数的高位数op1,且op1大于被除数b//////////
    strncpy(op1,pa,strlen(pb));
    if(strcmp(op1,pb)<0)
    {
        strncpy(op1,pa,strlen(pb)+1);
    }
    
    /////计算//////
    j = k = strlen(op1);
    t1=0;
    quo_size = strlen(pa)+1-k; //获取商的长度
    
    while(t1<quo_size)
    {
        up = 0;
        t = cmp(op1,pb);
        while(t>=0)
        {
            dsub(op1,pb);
            t = cmp(op1,pb);
            up++;
        }
        pr[t1++] = up+'0';
        op1[strlen(op1)]=pa[j++];
        clz(op1);
    }
    quo_size+=50;//加50精度
    while(t1<quo_size&&(cmp(op1,(char *)"0")>0))
    {
        up = 0;
        op1[strlen(op1)]='0';
        t = cmp(op1,pb);
        while(t>=0)
        {
            dsub(op1,pb);
            t = cmp(op1,pb);
            up++;
        }
        pr[t1++] = up+'0';                    
    }
    //////////////////////////////
    
    if(isNegative)t=1;
    else t=0;
//.........这里部分代码省略.........
开发者ID:StyxT,项目名称:new-calculator,代码行数:101,代码来源:main.c


注:本文中的cmp函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。