{"id":"https://openalex.org/W2603172505","doi":"https://doi.org/10.22152/programming-journal.org/2017/1/6","title":"TRIOT: Faster tensor manipulation in C++11","display_name":"TRIOT: Faster tensor manipulation in C++11","publication_year":2017,"publication_date":"2017-04-01","ids":{"openalex":"https://openalex.org/W2603172505","doi":"https://doi.org/10.22152/programming-journal.org/2017/1/6","mag":"2603172505"},"language":"en","primary_location":{"id":"doi:10.22152/programming-journal.org/2017/1/6","is_oa":true,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2017/1/6","pdf_url":"https://arxiv.org/pdf/1608.00099v2","source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},"type":"article","indexed_in":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://arxiv.org/pdf/1608.00099v2","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Oliver Serang","orcid":null},"institutions":[{"id":"https://openalex.org/I75951250","display_name":"Freie Universit\u00e4t Berlin","ror":"https://ror.org/046ak2485","country_code":"DE","type":"education","lineage":["https://openalex.org/I75951250"]}],"countries":["DE"],"is_corresponding":true,"raw_author_name":"Oliver Serang","raw_affiliation_strings":["Freie Univerist\u00e4t Berlin, Germany"],"affiliations":[{"raw_affiliation_string":"Freie Univerist\u00e4t Berlin, Germany","institution_ids":["https://openalex.org/I75951250"]}]},{"author_position":"last","author":{"id":null,"display_name":"Florian Heyl","orcid":null},"institutions":[{"id":"https://openalex.org/I75951250","display_name":"Freie Universit\u00e4t Berlin","ror":"https://ror.org/046ak2485","country_code":"DE","type":"education","lineage":["https://openalex.org/I75951250"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Florian Heyl","raw_affiliation_strings":["Freie Univerist\u00e4t Berlin, Germany"],"affiliations":[{"raw_affiliation_string":"Freie Univerist\u00e4t Berlin, Germany","institution_ids":["https://openalex.org/I75951250"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I75951250"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.0306016,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"1","issue":"2","first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.8590999841690063,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.8590999841690063,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11697","display_name":"Numerical Methods and Algorithms","score":0.01899999938905239,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.013299999758601189,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/curse-of-dimensionality","display_name":"Curse of dimensionality","score":0.6771000027656555},{"id":"https://openalex.org/keywords/search-engine-indexing","display_name":"Search engine indexing","score":0.5971999764442444},{"id":"https://openalex.org/keywords/leverage","display_name":"Leverage (statistics)","score":0.5440999865531921},{"id":"https://openalex.org/keywords/tensor","display_name":"Tensor (intrinsic definition)","score":0.5376999974250793},{"id":"https://openalex.org/keywords/multidimensional-data","display_name":"Multidimensional data","score":0.44029998779296875},{"id":"https://openalex.org/keywords/tuple","display_name":"Tuple","score":0.44029998779296875},{"id":"https://openalex.org/keywords/multidimensional-systems","display_name":"Multidimensional systems","score":0.40790000557899475},{"id":"https://openalex.org/keywords/data-structure","display_name":"Data structure","score":0.3774000108242035},{"id":"https://openalex.org/keywords/nested-loop-join","display_name":"Nested loop join","score":0.3540000021457672}],"concepts":[{"id":"https://openalex.org/C111030470","wikidata":"https://www.wikidata.org/wiki/Q1430460","display_name":"Curse of dimensionality","level":2,"score":0.6771000027656555},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6618000268936157},{"id":"https://openalex.org/C75165309","wikidata":"https://www.wikidata.org/wiki/Q2258979","display_name":"Search engine indexing","level":2,"score":0.5971999764442444},{"id":"https://openalex.org/C153083717","wikidata":"https://www.wikidata.org/wiki/Q6535263","display_name":"Leverage (statistics)","level":2,"score":0.5440999865531921},{"id":"https://openalex.org/C155281189","wikidata":"https://www.wikidata.org/wiki/Q3518150","display_name":"Tensor (intrinsic definition)","level":2,"score":0.5376999974250793},{"id":"https://openalex.org/C118930307","wikidata":"https://www.wikidata.org/wiki/Q600590","display_name":"Tuple","level":2,"score":0.44029998779296875},{"id":"https://openalex.org/C3019022308","wikidata":"https://www.wikidata.org/wiki/Q1418353","display_name":"Multidimensional data","level":2,"score":0.44029998779296875},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.43799999356269836},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.43689998984336853},{"id":"https://openalex.org/C158457486","wikidata":"https://www.wikidata.org/wiki/Q17104301","display_name":"Multidimensional systems","level":2,"score":0.40790000557899475},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.3774000108242035},{"id":"https://openalex.org/C1306188","wikidata":"https://www.wikidata.org/wiki/Q4060687","display_name":"Nested loop join","level":2,"score":0.3540000021457672},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.3492000102996826},{"id":"https://openalex.org/C152124472","wikidata":"https://www.wikidata.org/wiki/Q1204361","display_name":"Redundancy (engineering)","level":2,"score":0.3249000012874603},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.304500013589859},{"id":"https://openalex.org/C2780513914","wikidata":"https://www.wikidata.org/wiki/Q18210350","display_name":"Bottleneck","level":2,"score":0.3037000000476837},{"id":"https://openalex.org/C51255310","wikidata":"https://www.wikidata.org/wiki/Q1163016","display_name":"Tensor product","level":2,"score":0.30000001192092896},{"id":"https://openalex.org/C143008350","wikidata":"https://www.wikidata.org/wiki/Q3432172","display_name":"Dimensional modeling","level":2,"score":0.2939999997615814},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.2937999963760376},{"id":"https://openalex.org/C50820777","wikidata":"https://www.wikidata.org/wiki/Q213723","display_name":"Hypercube","level":2,"score":0.28690001368522644},{"id":"https://openalex.org/C177212765","wikidata":"https://www.wikidata.org/wiki/Q627335","display_name":"Workflow","level":2,"score":0.28439998626708984},{"id":"https://openalex.org/C97256817","wikidata":"https://www.wikidata.org/wiki/Q1462316","display_name":"Spurious relationship","level":2,"score":0.2791000008583069},{"id":"https://openalex.org/C102634674","wikidata":"https://www.wikidata.org/wiki/Q868473","display_name":"Smoothness","level":2,"score":0.2777999937534332},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.25760000944137573},{"id":"https://openalex.org/C1680195","wikidata":"https://www.wikidata.org/wiki/Q2296021","display_name":"Tensor algebra","level":5,"score":0.25429999828338623},{"id":"https://openalex.org/C2780598303","wikidata":"https://www.wikidata.org/wiki/Q65921492","display_name":"Flexibility (engineering)","level":2,"score":0.2515000104904175}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.22152/programming-journal.org/2017/1/6","is_oa":true,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2017/1/6","pdf_url":"https://arxiv.org/pdf/1608.00099v2","source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:1608.00099","is_oa":true,"landing_page_url":"http://arxiv.org/abs/1608.00099","pdf_url":"https://arxiv.org/pdf/1608.00099","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"}],"best_oa_location":{"id":"doi:10.22152/programming-journal.org/2017/1/6","is_oa":true,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2017/1/6","pdf_url":"https://arxiv.org/pdf/1608.00099v2","source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":false},"content_urls":{"pdf":"https://content.openalex.org/works/W2603172505.pdf"},"referenced_works_count":1,"referenced_works":["https://openalex.org/W2105169845"],"related_works":[],"abstract_inverted_index":{"[abridged]":[0],"Context:":[1],"Multidimensional":[2],"arrays":[3,19,35,181],"are":[4,20,95],"used":[5,88],"by":[6],"many":[7],"different":[8,37],"algorithms.":[9],"As":[10],"such,":[11],"indexing":[12,30],"and":[13,23,68,100,152,207,213,219],"broadcasting":[14],"complex":[15],"operations":[16,155,209,222],"over":[17,206],"multidimensional":[18,34,128,180,211],"ubiquitous":[21],"tasks":[22],"can":[24,167,224],"be":[25,71,87,119,145,168,225],"performance":[26,191,218],"limiting.":[27],"Inquiry:":[28],"Simultaneously":[29],"two":[31],"or":[32,142,159],"more":[33],"with":[36],"shapes":[38],"(e.g.,":[39,150],"copying":[40],"data":[41],"from":[42,108],"one":[43],"tensor":[44,50,78],"to":[45,58,121,144,156,200,204,210],"another":[46],"larger,":[47],"zero":[48],"padded":[49],"in":[51,65,163,186,189],"anticipation":[52],"of":[53,76,92,103,126,179,221],"a":[54,77,114,127,183,197],"convolution)":[55],"is":[56,79,182],"difficult":[57],"do":[59,137],"efficiently:":[60],"Hard-coded":[61],"nested":[62,173],"for":[63,174],"loops":[64],"C,":[66],"Fortran,":[67],"Go":[69],"cannot":[70,86],"applied":[72],"when":[73],"the":[74,90,93,101,106,110,131,140,164,216],"dimension":[75],"unknown":[80],"at":[81,97,147],"compile":[82,98,148],"time.":[83],"Likewise,":[84],"boost::multi_array":[85],"unless":[89],"dimensions":[91],"array":[94],"known":[96,146],"time,":[99],"style":[102],"implementation":[104],"restricts":[105],"user":[107],"using":[109,227],"index":[111,157],"tuple":[112],"inside":[113],"vectorized":[115],"operation":[116],"(as":[117],"would":[118],"required":[120],"compute":[122],"an":[123],"expected":[124],"value":[125],"distribution).":[129],"On":[130],"other":[132],"hand,":[133],"iteration":[134],"methods":[135],"that":[136,223],"not":[138],"require":[139],"dimensionality":[141],"shape":[143],"time":[149],"incrementing":[151],"applying":[153],"carry":[154],"tuples":[158],"remapping":[160],"integer":[161],"indices":[162],"flat":[165],"array),":[166],"substantially":[169],"slower":[170],"than":[171],"hard-coded":[172],"loops.":[175],"...":[176],"Importance:":[177],"Manipulation":[178],"common":[184],"task":[185],"software,":[187],"especially":[188],"high":[190],"numerical":[192],"methods.":[193],"This":[194],"paper":[195],"proposes":[196],"novel":[198],"way":[199],"leverage":[201],"template":[202],"recursion":[203],"iterate":[205],"apply":[208],"arrays,":[212],"then":[214],"demonstrates":[215],"superior":[217],"flexibility":[220],"achieved":[226],"this":[228],"new":[229],"approach.":[230]},"counts_by_year":[],"updated_date":"2026-03-20T23:20:44.827607","created_date":"2017-04-07T00:00:00"}
