sqrmat * sm_transpose( sqrmat *A ) { sqrmat *B ; int n=A->n , i,j ; double *mat,*nat ; INIT_SQRMAT(B,n) ; mat = A->mat ; nat = B->mat ; for( i=0 ; i < n ; i++ ){ NAT(i,i) = MAT(i,i) ; for( j=0 ; j < i ; j++ ){ NAT(i,j) = MAT(j,i) ; NAT(j,i) = MAT(i,j) ; } } return B ; }
/******************************************************************************************* * NAME : int main(argc, argv) * * DESCRIPTION : Parses arguments to construct a set of points representing a triangle. * Prints to the console the classification of the triangle or an error. * * INPUTS : * PARAMETERS : * int argc number of arguments in argv * char * argv[] strings containing program name, (x,y) pairs */ int main (int argc, char *argv[]) { if (check_arg_count(argc)) { ERROR(); } if (create_triangle(argv)) { ERROR(); } if (check_colinearity()) { NAT(); } compute_triangle_sides(); print_classification(); return 0; }
sqrmat * sm_iktk( sqrmat *K ) { int n , i,j,p ; double *mat , *nat , sum ; sqrmat *N ; n = K->n ; INIT_SQRMAT(N,n) ; mat = K->mat ; nat = N->mat ; for( j=0 ; j < n ; j++ ){ for( i=0 ; i <= j ; i++ ){ sum = -MAT(i,j) - MAT(j,i) ; for( p=0 ; p < n ; p++ ) sum += MAT(p,i)*MAT(p,j) ; NAT(i,j) = sum ; } for( i=0 ; i < j ; i++ ) NAT(j,i) = NAT(i,j) ; NAT(j,j) += 1.0 ; } return N ; }
sqrmat * sm_add( sqrmat *A , sqrmat *B ) { sqrmat *C ; int n=A->n , i,j,k ; double *mat,*nat,*pat; INIT_SQRMAT(C,n) ; mat = A->mat ; nat = B->mat ; pat = C->mat ; for( i=0 ; i < n ; i++ ){ for( j=0 ; j < n ; j++ ){ PAT(i,j) = MAT(i,j) + NAT(i,j) ; } } return C ; }
/* equals the trace of the product */ double sm_dot(sqrmat *A, sqrmat *B) { int n=A->n , i,j; double *mat,*nat; double sum = 0.0; mat = A->mat ; nat = B->mat ; for( i=0 ; i < n ; i++ ){ for( j=0 ; j < n ; j++ ){ sum += MAT(i,j) * NAT(i,j) ; } } return(sum) ; }
sqrmat * sm_mult( sqrmat *A , sqrmat *B ) { sqrmat *C ; int n=A->n , i,j,k ; double *mat,*nat,*pat , sum ; INIT_SQRMAT(C,n) ; mat = A->mat ; nat = B->mat ; pat = C->mat ; for( i=0 ; i < n ; i++ ){ for( j=0 ; j < n ; j++ ){ sum = 0.0 ; for( k=0 ; k < n ; k++ ) sum += MAT(i,k)*NAT(k,j) ; PAT(i,j) = sum ; } } return C ; }
/* elements */ sqrmat * sm_scale(sqrmat *A, double sc_factor, int newmatrix) { int n=A->n, i, j; double *mat, *nat; sqrmat *B = NULL; mat = A->mat; if(newmatrix) { INIT_SQRMAT(B,n); nat = B->mat; } else nat = mat; for(i=0;i<n;i++) for(j=0;j<n;j++) NAT(i,j) = sc_factor * MAT(i,j); return(B); }
TstVoicePath_t stVoicePath; TstLedCtl stLedCtl; TstMiscCtl_t stMiscCtl; #endif } argsu_t; unsigned long aBufferSize = sizeof( argsu_t ); unsigned char aBuffer[ sizeof( argsu_t ) ]; /* ================================================================ */ /* Internal node */ /* ================================================================ */ static const node_t nProtocolRTP[] = { { NID( VOIP_MGR_SET_SESSION ), NTYPE_LEAF, NULL, NAT( TstVoipMgrSession ) }, { NID( VOIP_MGR_UNSET_SESSION ), NTYPE_LEAF, NULL, NAT( TstVoipCfg ) }, { NID( VOIP_MGR_SETRTPSESSIONSTATE ), NTYPE_LEAF, NULL, NAT( TstVoipRtpSessionState ) }, { NID( VOIP_MGR_RTP_CFG ), NTYPE_LEAF, NULL, NAT( TstVoipCfg ) }, { NID( VOIP_MGR_HOLD ), NTYPE_LEAF, NULL, NAT( TstVoipCfg ) }, { NID( VOIP_MGR_CTRL_RTPSESSION ), NTYPE_LEAF, NULL, NAT( TstVoipCfg ) }, { NID( VOIP_MGR_CTRL_TRANSESSION_ID ), NTYPE_LEAF, NULL, NAT( TstVoipCfg ) }, //{ NID( VOIP_MGR_SETCONFERENCE ), NTYPE_LEAF, NULL, NAT( TstVoipMgr3WayCfg ) }, { NID( VOIP_MGR_GET_RTP_STATISTICS ), NTYPE_LEAF, NULL, NAT( TstVoipRtpStatistics ) }, { NID( VOIP_MGR_GET_SESSION_STATISTICS ), NTYPE_LEAF, NULL, NAT( TstVoipSessionStatistics ) }, { NID( 0 ), NTYPE_NONE, NULL, NULL, 0 }, }; static const node_t nProtocolRTCP[] = { { NID( VOIP_MGR_SET_RTCP_SESSION ), NTYPE_LEAF, NULL, NAT( TstVoipCfg ) }, { NID( VOIP_MGR_UNSET_RTCP_SESSION ), NTYPE_LEAF, NULL, NAT( TstVoipRtcpSession ) },
//NAT端口转发 void XenServer::natServer(char *data,DbServer* dbServer) { NAT(data,dbServer); }