{
if (algorithm == 'q') {
*ib = 12;
*nquarkthreads = ncorespsocket;
if ((m > 0) && (m <= 2080)) {
*nb = 64;
*ob = 64;
*nthreads = 2;
}
if ((m > 2080) && (m <= 3360)) {
*nb = 128;
*ob = 128;
*nthreads = 6;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
}
if ((m > 3360) && (m <= 4640)) {
*nb = 128;
*ob = 128;
*nthreads = 14;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
}
if ((m > 4640) && (m <= 5920)) {
*nb = 128;
*ob = 160;
*nthreads = 18;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
if ((ncores == 12) && (ncorespsocket == 6)) {
*ob = 128;
*nquarkthreads = 4;
*nthreads = 8;
}
}
if ((m > 5920) && (m <= 7200)) {
*nb = 128;
*ob = 160;
*nthreads = 22;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
if ((ncores == 12) && (ncorespsocket == 6)) {
*ob = 128;
*nquarkthreads = 4;
*nthreads = 8;
}
}
if ((m > 7200) && (m <= 8480)) {
*nb = 128;
*ob = 160;
*nthreads = 26;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
if ((ncores == 12) && (ncorespsocket == 6)) {
*ob = 128;
*nquarkthreads = 3;
*nthreads = 9;
}
}
if ((m > 8480) && (m <= 9760)) {
*nb = 128;
*ob = 160;
*nthreads = 30;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
if ((ncores == 12) && (ncorespsocket == 6)) {
*ob = 128;
*nquarkthreads = 3;
*nthreads = 9;
if (precision == 's'){
*nb = 192;
*ob = 192;
}
}
}
if ((m > 9760) && (m <= 11040)) {
*nb = 128;
*ob = 160;
*nthreads = 34;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
if ((ncores == 12) && (ncorespsocket == 6)) {
*ob = 128;
*nquarkthreads = 2;
*nthreads = 10;
if (precision == 's'){
*nb = 192;
*ob = 192;
}
}
}
if ((m > 11040) && (m <= 12320)) {
*nb = 128;
*ob = 160;
*nthreads = 36;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
if ((ncores == 12) && (ncorespsocket == 6)) {
*ob = 224;
if (precision == 'c'){
*ob = 128;
}
*nquarkthreads = 2;
*nthreads = 10;
if (precision == 's'){
*nb = 192;
*ob = 192;
}
}
}
if ((m > 12320) && (m <= 13600)) {
*nb = 128;
*ob = 160;
*nthreads = 42;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
if (precision == 'z'){
*ob = 192;
}
if ((ncores == 12) && (ncorespsocket == 6)) {
*ob = 224;
if (precision == 'c'){
*ob = 128;
}
*nquarkthreads = 2;
*nthreads = 10;
if (precision == 's'){
*nb = 192;
*ob = 224;
}
}
}
if ((m > 13600) && (m <= 15220)) {
*nb = 128;
*ob = 192;
*nthreads = 42;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
if (precision == 'd'){
*ob = 160;
}
if ((ncores == 12) && (ncorespsocket == 6)) {
*ob = 224;
if (precision == 'c'){
*ob = 160;
}
*nquarkthreads = 2;
*nthreads = 10;
if (precision == 's'){
*nb = 192;
*ob = 224;
}
}
}
if ((m > 15220) && (m <= 16800)) {
*nb = 128;
*ob = 192;
*nthreads = 42;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
if (precision == 'd'){
*nb = 160;
*ob = 200;
}
if (precision == 'c'){
*ob = 160;
}
if ((ncores == 12) && (ncorespsocket == 6)) {
*ob = 224;
if (precision == 'c'){
*ob = 192;
}
*nquarkthreads = 2;
*nthreads = 10;
if (precision == 's'){
*nb = 192;
*ob = 224;
}
}
}
if (m > 16800) {
*nb = 128;
*ob = 224;
*nthreads = 42;
if ((*nthreads + *nquarkthreads) > ncores)
*nthreads = ncores - *nquarkthreads;
if (precision == 'd'){
*nb = 160;
*ob = 200;
}
if (precision == 'c'){
*ob = 192;
}
if ((ncores == 12) && (ncorespsocket == 6)) {
*ob = 256;
if (precision == 'c'){
*ob = 192;
}
*nquarkthreads = 2;
*nthreads = 10;
if (precision == 's'){
*nb = 192;
*ob = 224;
}
}
}
}
}