📄 algebra.c
字号:
case TYPE_lng: #line 957 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx" v = (s == 0)?ATOMnilptr(t):BUNtail(b, BUNlast(b)-BUNsize(b)); #line 924 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx" if (s > 0 && !(BATtordered(b)&1)) { char* nil = BATatoms[t].atomNull; BUN p,q; int xx; BATloopFast(b, p, q, xx) { x = (ptr) BUNtloc(b, p); if (simple_CMP(x, nil, lng) == 0) { v = nil; break; } if (simple_GT(x, v, lng)) { v = x; } } } if (aggr) { memcpy(aggr, x=v, ATOMsize(t)); } else { /* alloc new space and copy the atom into it */ s = ATOMlen(t, v); memcpy(x = (ptr) GDKmalloc(s), v, s); }#line 958 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 818 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx" break; default:if (b->tvarsized) { #line 957 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx" v = (s == 0)?ATOMnilptr(t):BUNtail(b, BUNlast(b)-BUNsize(b)); #line 924 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx" if (s > 0 && !(BATtordered(b)&1)) { char* nil = BATatoms[t].atomNull; BUN p,q; int xx; BATloopFast(b, p, q, xx) { x = (ptr) BUNtvar(b, p); if (atom_CMP(x, nil, t) == 0) { v = nil; break; } if (atom_GT(x, v, t)) { v = x; } } } if (aggr) { memcpy(aggr, x=v, ATOMsize(t)); } else { /* alloc new space and copy the atom into it */ s = ATOMlen(t, v); memcpy(x = (ptr) GDKmalloc(s), v, s); }#line 958 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 820 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx" break; } else { #line 957 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx" v = (s == 0)?ATOMnilptr(t):BUNtail(b, BUNlast(b)-BUNsize(b)); #line 924 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx" if (s > 0 && !(BATtordered(b)&1)) { char* nil = BATatoms[t].atomNull; BUN p,q; int xx; BATloopFast(b, p, q, xx) { x = (ptr) BUNtloc(b, p); if (atom_CMP(x, nil, t) == 0) { v = nil; break; } if (atom_GT(x, v, t)) { v = x; } } } if (aggr) { memcpy(aggr, x=v, ATOMsize(t)); } else { /* alloc new space and copy the atom into it */ s = ATOMlen(t, v); memcpy(x = (ptr) GDKmalloc(s), v, s); }#line 958 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 822 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx" break; } } } return x;}#line 830 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 961 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_sht_sht(sht* res, BAT *b){ BUN p,q; int xx; sht result=0; BATcheck(b,"BATsum_sht_sht"); BATloopFast(b, p, q, xx) { sht *value = (sht*) BUNtloc(b, p); if (*value == sht_nil) { result = sht_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 962 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_sht_int(int* res, BAT *b){ BUN p,q; int xx; int result=0; BATcheck(b,"BATsum_sht_int"); BATloopFast(b, p, q, xx) { sht *value = (sht*) BUNtloc(b, p); if (*value == sht_nil) { result = int_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 963 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_sht_lng(lng* res, BAT *b){ BUN p,q; int xx; lng result=0; BATcheck(b,"BATsum_sht_lng"); BATloopFast(b, p, q, xx) { sht *value = (sht*) BUNtloc(b, p); if (*value == sht_nil) { result = lng_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 964 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_sht_dbl(dbl* res, BAT *b){ BUN p,q; int xx; dbl result=0; BATcheck(b,"BATsum_sht_dbl"); BATloopFast(b, p, q, xx) { sht *value = (sht*) BUNtloc(b, p); if (*value == sht_nil) { result = dbl_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 965 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_int_int(int* res, BAT *b){ BUN p,q; int xx; int result=0; BATcheck(b,"BATsum_int_int"); BATloopFast(b, p, q, xx) { int *value = (int*) BUNtloc(b, p); if (*value == int_nil) { result = int_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 966 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_int_lng(lng* res, BAT *b){ BUN p,q; int xx; lng result=0; BATcheck(b,"BATsum_int_lng"); BATloopFast(b, p, q, xx) { int *value = (int*) BUNtloc(b, p); if (*value == int_nil) { result = lng_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 967 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_int_dbl(dbl* res, BAT *b){ BUN p,q; int xx; dbl result=0; BATcheck(b,"BATsum_int_dbl"); BATloopFast(b, p, q, xx) { int *value = (int*) BUNtloc(b, p); if (*value == int_nil) { result = dbl_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 968 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_lng_lng(lng* res, BAT *b){ BUN p,q; int xx; lng result=0; BATcheck(b,"BATsum_lng_lng"); BATloopFast(b, p, q, xx) { lng *value = (lng*) BUNtloc(b, p); if (*value == lng_nil) { result = lng_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 969 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_lng_dbl(dbl* res, BAT *b){ BUN p,q; int xx; dbl result=0; BATcheck(b,"BATsum_lng_dbl"); BATloopFast(b, p, q, xx) { lng *value = (lng*) BUNtloc(b, p); if (*value == lng_nil) { result = dbl_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 970 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_flt_flt(flt* res, BAT *b){ BUN p,q; int xx; flt result=0.0; BATcheck(b,"BATsum_flt_flt"); BATloopFast(b, p, q, xx) { flt *value = (flt*) BUNtloc(b, p); if (*value == flt_nil) { result = flt_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 971 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_flt_dbl(dbl* res, BAT *b){ BUN p,q; int xx; dbl result=0.0; BATcheck(b,"BATsum_flt_dbl"); BATloopFast(b, p, q, xx) { flt *value = (flt*) BUNtloc(b, p); if (*value == flt_nil) { result = dbl_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 972 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 842 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsum_dbl_dbl(dbl* res, BAT *b){ BUN p,q; int xx; dbl result=0.0; BATcheck(b,"BATsum_dbl_dbl"); BATloopFast(b, p, q, xx) { dbl *value = (dbl*) BUNtloc(b, p); if (*value == dbl_nil) { result = dbl_nil; break; } else { result += *value; } } *res = result; return GDK_SUCCEED;}#line 973 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 869 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDprod_sht_sht(sht* res, BAT *b){ BUN p,q; int xx; sht result=1; BATcheck(b,"BATprodInt"); BATloopFast(b, p, q, xx) { sht *value = (sht*) BUNtloc(b, p); if (*value == sht_nil) { result = sht_nil; break; } else { result *= *value; } } *res = result; return GDK_SUCCEED;}#line 975 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 869 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDprod_sht_int(int* res, BAT *b){ BUN p,q; int xx; int result=1; BATcheck(b,"BATprodInt"); BATloopFast(b, p, q, xx) { sht *value = (sht*) BUNtloc(b, p); if (*value == sht_nil) { result = int_nil; break; } else { result *= *value; } } *res = result; return GDK_SUCCEED;}#line 976 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 869 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDprod_sht_lng(lng* res, BAT *b){ BUN p,q; int xx; lng result=1; BATcheck(b,"BATprodInt"); BATloopFast(b, p, q, xx) { sht *value = (sht*) BUNtloc(b, p); if (*value == sht_nil) { result = lng_nil; break; } else { result *= *value; } } *res = result; return GDK_SUCCEED;}#line 977 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 869 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDprod_int_int(int* res, BAT *b){ BUN p,q; int xx; int result=1; BATcheck(b,"BATprodInt"); BATloopFast(b, p, q, xx) { int *value = (int*) BUNtloc(b, p); if (*value == int_nil) { result = int_nil;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -